我想做一些看起来很容易的事情。我只是想对这个表达的对立面做一个正则表达式:
(。)"数"()(。*)1.1.2
所以我只想获取文本,例如:" number":2.2.2但不是" number":1.1.2
我尝试了[^],但它只适用于一些数字或字母。 我正在http://regexpal.com/
尝试我的正则表达式编辑:如果我没有正确解释,我很抱歉:我想做[^ 1234]之类的事情,但适用于所有正则表达式:所以像[^((。)&#34 ;数"(。*)(。)1.1.2)]
EDITED2:如果文字是"数字":1.3.4我将选择文字,但如果文字是"数字":1.1.2我不会选择任何东西。 谢谢!
答案 0 :(得分:4)
我非常肯定在您的编辑后,这可以实现您想要的目标:
"number":(?!1\.1\.2)\d\.\d\.\d(.*)
这通过字面匹配"number":
,然后使用否定前瞻((?!...)
)来实现。这是一个零宽度断言(意味着它实际上并不匹配任何东西,它只是确保某些东西是真的)。在这个负向预测中,我们确保下一个字符不是1\.1\.2
(注意我逃避了句点,因为.
表示“任何字符”)。只要1.1.2
不遵循"number":
,我们就会继续匹配任意一组数字\d\.\d\.\d
,然后使用(.*)
捕获所有其他数字。