我创建了以下条件正则表达式,该条件正则表达式似乎可以在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))?


您需要转义\

08-17 15:24