我有一个问题。 我想做的是,使用 Java 正则表达式,如果它不是“Order”序列,则替换“Or”序列。因此,如果序列以“Or”开头并且不以“der”结尾,我想进行替换:
例如:
- 预期的 findByNameOrAge -> findByName 或 Age
- 预期的 findByNameOrderAge -> findByNameOrderAge(保持相同的值)
我已经尝试过相同的正则表达式序列,但是没有成功。
String value = "findByNameOrAge";
String value2 = "findByNameOrderByAge";
String regex = "Or(?=^der)";
System.out.println(value.replaceAll(regex, " or "));
System.out.println(value2.replaceAll(regex, " or "));
最佳答案
您的正则表达式 (?=^der)
匹配 Or
并使用正向先行断言后面是字符串 ^
的开头接着是 der
相反,您可以使用否定先行 (?!
来断言 Or
之后的内容不是 der
,然后替换为 或
或者(?!der)
String regex = "Or(?!der)";
关于Java正则表达式替换和条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52136895/