我是一个新手,希望能得到一些regex方面的帮助。我有动态生成的输入字符串,其中的一个示例:
(ACTOR > 0OR(PROC <> NULL AND REVIEW=NULL ANDFERDINAND = NAME ) )
现在我需要用
|
替换OR
,用&
替换AND
,用==
替换=
,用!=
替换<>
,并在字符之间提供一个空格,但不包括原有空格。通常我可以使用
string.replace()
来完成这个任务。但是,由于语句可能带有或不带有空格,甚至由于AND
可能出现在其他单词中,比如FERDINAND
,所以我觉得有点困难。期望的结果:
( ACTOR > 0 | ( PROC != NULL & REVIEW == NULL & FERDINAND == NAME ) )
我在想是否有人可以帮助我解决这个问题。提前致谢。
> 0OR
是一个错误还是就是这样的呢? - Geno Chen.replaceAll("\\s*(?<![a-zA-Z])OR(?!\\s*[<>=!])\\s*", " | ") .replaceAll("\\s*(?<![a-zA-Z])AND(?!\\s*[<>=!])\\s*", " & ") .replaceAll("\\s*=\\s*", " == ") .replaceAll("\\s*<>\\s*", " != ")
。 - Wiktor Stribiżew