为了账号安全,请及时绑定邮箱和手机立即绑定

Java相当于PHP的preg_replace_callback

Java相当于PHP的preg_replace_callback

慕森卡 2019-10-21 15:05:11
我正在将应用程序从PHP迁移到Java,并且在代码中大量使用了正则表达式。我遇到了PHP中似乎没有Java等效项的某些问题:preg_replace_callback()对于正则表达式中的每个匹配项,它都会调用一个函数,该函数将匹配文本作为参数传递给该函数。用法示例:$articleText = preg_replace_callback("/\[thumb(\d+)\]/",'thumbReplace', $articleText);# ...function thumbReplace($matches) {   global $photos;   return "<img src=\"thumbs/" . $photos[$matches[1]] . "\">";}用Java做到这一点的理想方法是什么?
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

当您可以在循环中仅使用appendReplacement()和appendTail()时,尝试模拟PHP的回调功能似乎需要进行大量工作:


StringBuffer resultString = new StringBuffer();

Pattern regex = Pattern.compile("regex");

Matcher regexMatcher = regex.matcher(subjectString);

while (regexMatcher.find()) {

  // You can vary the replacement text for each match on-the-fly

  regexMatcher.appendReplacement(resultString, "replacement");

}

regexMatcher.appendTail(resultString);


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 981 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信