我在正在尝试创建的正则表达式中需要一些帮助,我通常对这些很好但是这个让我卡住了......
我需要使用\ d替换字符串中的数字9(创建一个新的正则表达式)。这些是可以预期的一些示例字符串:
X(29)
9(5)
99
X(29)V999S
现在,在您回答太快之前,我们一定不要触及方括号中的数字...... 我在这里看了几个其他的答案,这个解决方案可能有些东西,但我似乎无法适应它 - Regex for splitting a string using space when not surrounded by single or double quotes
到目前为止,我已经提出了
line.replaceAll("[^(\\d)]??9[^)]??", "\\d");
给了我
X(2\d)
\d(5)
\d\d
X(2\d)V\d\d\dS
任何人都有任何想法。
答案 0 :(得分:2)
鉴于你的规则很简单,但很难用正则表达式实现,为什么不自己动手呢?迭代字符串并创建一个新的字符串,跟踪状态(括号或外部)。
百里
答案 1 :(得分:2)
这个怎么样?
(?!\([^\(]*)9(?![^\(]*\))