我需要替换以下字符串中的引号。
String str = "This is 'test()ing' and test()ing'";
最终输出应为"这是test()和测试()'";
即仅在以' test()开头并以'结尾时才替换。介于两者之间的文字保持不变。
这个没有用。
str = str.replaceAll("^('test())(.*)(')$", "test()$2");
请为此建议合适的正则表达式。
答案 0 :(得分:4)
这个正则表达式将具有所需的结果:
str = str.replaceAll("'test\\(\\)(.*?)'", "test()$1");
带有.*?
的字符串懒得匹配,并且不匹配整个字符串的结尾。
答案 1 :(得分:1)
看起来你真的想在你的正则表达式中拥有^
和$
锚点(行的开头/结尾)。
除此之外,它会消耗超过你想要的。如果您希望.*
停在最早点,它可以继续,您应该让它不情愿地匹配,例如.*?
。
所以你的正则表达式是:
('test\(\))(.*?)(')
答案 2 :(得分:1)
答案 3 :(得分:1)