Gregex和前进/后退前瞻

时间:2018-01-07 09:58:30

标签: regex gtk

我正在为使用Gregexp的GTK GSourceView编写语言定义.lang。现在我希望匹配普通数字和前面带有#的普通数字,而我想要排除任何类型的字母或_

对于这组字符串:

001abc_
abc_001_abc
#abc_001
#001_abc
#001
#2
10 

我试了一个正则表达式:

[#]?(?<![a-zA-Z_]+)([0-9])+(?![a-zA-Z_]+)

但我遇到两个问题。首先?<!不受支持,其次我得到前四个字符串的匹配。看起来子组+中的()不起作用。

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为您无法在后视+中使用量词(?<![a-zA-Z_]+)

如果您只想匹配最后3个,也许您可​​以在字边界#之间匹配带有一个或多个数字\d+的可选\b

\b#?\d+\b