![]() |
1
22
重要的 :正如所指出的 Kip 在注释中,如果匹配的regex与替换字符串匹配,则此类具有无限循环错误。如果必要的话,我将把它作为练习留给读者来解决。 我不知道任何类似于Java的东西。使用Matcher类,您可以轻松地滚动自己的文件:
然后呼叫:
请注意,您可以通过调用
编辑: 使它看起来更像PHP函数的确切功能。 这是原版,因为提问者喜欢:
对于这个特定的用例,最好是简单地将回调中的每个匹配项排队,然后向后运行它们。这将防止在修改字符串时重新映射索引。 |
![]() |
2
54
当您可以在循环中使用appendreplacement()和appendtail()时,尝试模拟php的回调功能似乎是一项非常困难的工作:
|
![]() |
3
3
我对这里的任何解决方案都不太满意。我想要一个无状态的解决方案。如果我的替换字符串恰好与模式匹配,我不想以无限循环结束。当我在那里的时候,我增加了对
以下是用法示例:
下面是我的replaceCallback类版本:
|
![]() |
4
0
我发现,如果您返回的字符串可以再次匹配,jdmichal的答案将是无限循环;下面是一个修改,防止无限循环进行这种匹配。
|
![]() |
5
0
使用实例:
将产生返回值:
|
![]() |
6
-1
这是我对你的建议所做的最后结果。我想如果有人也有同样的问题的话,到这里来会很好。产生的调用代码如下:
整个类列表如下:
|
![]() |
Mehdi Ammar · 小写字符串中方括号内的所有单词 2 年前 |
![]() |
jerome · PHP删除括号内及其后的字符串 7 年前 |
![]() |
Costin Nicolau · regex替换为数组 7 年前 |
|
WholeHearted · 记事本++正则表达式跨新行字符查找和替换 7 年前 |
![]() |
IanCun · 嵌套引号内的子模式Regex匹配 7 年前 |
|
bohr · preg\U replace删除行的其余部分 7 年前 |
![]() |
ainodoramaaa 2 · 使用strtr删除字符串 7 年前 |
![]() |
502_Geek · 如果斜杠后面不包含空格,如何在斜杠后面添加空格? 7 年前 |