我创建了以下条件正则表达式,该条件正则表达式似乎可以在http://gskinner.com/RegExr/上运行,但不能在Java中编译。
正则表达式如下:
X: (\d+). Y: (\d+)(?(?=:inherit=(true|false)))
并且应该提取我的X,Y值和(如果存在)该值,然后加上:inherit =
例如
X: 192131, Y: 1923123 (matches 192131, 1923123)
X: 192131, Y: 1923123:inherit=true (matches 192131, 1923123, true)
X: 192131, Y: 1923123:inherit=false (matches 192131, 1923123, false)
在Java中,我得到一个错误:
Unknown inline modifier near index 20 X: (\d+). Y: (\d+)(?(?=:inherit=(true|false)))
索引20是
(?(?
中的第二个括号有人可以帮我用Java正确实现它,也许还可以解释为什么网站测试人员要处理它。
谢谢!
最佳答案
(?(
不是valid syntax。
采用:
X:\s(\d+),\sY:\s(\d+)(?::inherit=(true|false))?
您需要转义
\
。