我需要替换所有出现的子字符,只要前面有“]”,后面跟着“[”(前后并且不一定紧挨着子字符串)。例如:只在部分字符分隔的文本的某些部分替换子字符
这将是我需要做替换字符串:
[style and tags info] valid text info [more style info] more info here[styles]
如果更换表述是:信息 - >更改(可能不止一个单词)
结果应该是:
[style and tags info] valid text change [more style info] more change here [styles]
我的想法是使用正则表达式来隔离我必须要改变,然后让一起的replaceAll呼叫更换的话。
但我已经尝试了几个正则表达式来隔离搜索表达式而没有成功。主要是因为我需要类似
(?<=.*)
这是,在我正在寻找的单词前面有任意数量的字符。这不被Java正则表达式支持(也不支持我知道的任何其他正则表达式的实现)。
我发现这个解决方案,MATLAB写的,但似乎很难在Java中复制:
Matlab regex - replace substring ONLY within angled brackets
有没有更简单的方法呢?一些正则表达式我没有考虑过?
为什么不在''[']之外替换'change'?我的意思是,如果'info'在第一个'[...]'之前,它不应该被替换吗? –