Java 使用正则表达式替换字符串中的特定字符
所以我对regex有点陌生,需要一些帮助。我动态生成了输入字符串,其示例如下:Java 使用正则表达式替换字符串中的特定字符,java,regex,Java,Regex,所以我对regex有点陌生,需要一些帮助。我动态生成了输入字符串,其示例如下: (ACTOR > 0OR(PROC <> NULL AND REVIEW=NULL ANDFERDINAND = NAME ) ) 所以我想知道是否有人能帮我。提前感谢。您可以尝试此操作,但案例和费迪南德无法处理。对于这一点,正则表达式是不合适的,因为没有简单的分离标准 String str2 = str1 .replaceAll("([0-9])(?=[A-Z])", "$1 ")
(ACTOR > 0OR(PROC <> NULL AND REVIEW=NULL ANDFERDINAND = NAME ) )
所以我想知道是否有人能帮我。提前感谢。您可以尝试此操作,但案例
和费迪南德
无法处理。对于这一点,正则表达式是不合适的,因为没有简单的分离标准
String str2 = str1
.replaceAll("([0-9])(?=[A-Z])", "$1 ") //1
.replaceAll("\\bAND\\b", "&") //2
.replaceAll("\\bOR\\b", "|") //3
.replaceAll("(?<![=<>!])=(?!=)", "==") //4
.replaceAll("<>", "!=") //5
.replaceAll("(?<=[^&| ])(==|!=|&|\\)|\\|)", " $1") //6
.replaceAll("(==|!=|&|\\(|\\)|\\|)(?=[^ &|])", "$1 "); //7
String str2=str1
.replaceAll(“([0-9])(?=[A-Z])”,“$1”)//1
.replaceAll(“\\bAND\\b”、“&”)//2
.replaceAll(“\\bOR\\b”,“|”)3
.replaceAll(“(?!])=(?!=)”,“=”//4
.replaceAll(“,”!=”//5
.replaceAll(“(?如果replace”和“into”&”(周围有空格?)还有,原始字符串是错误还是原样?@GenoChen:对于你的第一个问题,不,那不行。因为不能保证在ANDAlso前后会有空格,所以>0或原样。这就是为什么我提到在和或或之前或之后可能会有空格,也可能不会有空格的原因
在字符串中,我不确定这是否超出了正则表达式的“表达能力”。也许它需要为此构建一个语法树(或者我只是把这个问题弄得太复杂了?)。对于字符串CLASS\u SUM>=10&&COUNTRY!=USA
,这是输出CLASS\u SUM>==10&&COUNTRY!==USA
,这是错误的。您介意检查一下吗?是的,这没有包含在原始问题中,但很容易修复。我将修改我的答案。当您进行广泛测试时,可能会有更多的情况。您应该你可以试着学习正则表达式。它不难理解,你可以自己修改模式。
String str2 = str1
.replaceAll("([0-9])(?=[A-Z])", "$1 ") //1
.replaceAll("\\bAND\\b", "&") //2
.replaceAll("\\bOR\\b", "|") //3
.replaceAll("(?<![=<>!])=(?!=)", "==") //4
.replaceAll("<>", "!=") //5
.replaceAll("(?<=[^&| ])(==|!=|&|\\)|\\|)", " $1") //6
.replaceAll("(==|!=|&|\\(|\\)|\\|)(?=[^ &|])", "$1 "); //7