我在字符串上使用replaceAll()来替换任何带有"[two letters]"的字母.所以xxxaxxx到xxx [ab] xxx.我不希望已经被替换的那些再次完成(转到xxx [a [cb]] xxx)...
一种简单的方法是排除任何由"["或后跟"]"所引用的字母.什么是正确的正则表达式使用?
replaceAll(foofoofoo,"[ab]");
s.replaceAll("(?<!\\[)t(?!\\])", "[ab]");
Run Code Online (Sandbox Code Playgroud)
这些分别是负面的后观和负面的前瞻,两个例子是零宽度断言.更多信息可以在Lookahead和Lookbehind Zero-Width断言中找到.
上面做的一件事不包括[t].我怀疑这是你想要的,但如果没有,你需要稍微修改一下.