Gregex和向前/向后前瞻

Gregex和向前/向后前瞻,regex,gtk,Regex,Gtk,我正在为GTK GSourceView编写一个语言定义.lang,它使用。现在我想匹配普通数字和前面有的普通数字,同时排除任何类型的字母或 对于这组字符串: 001abc_ abc_001_abc #abc_001 #001_abc #001 #2 10 我尝试了正则表达式: [#]?(?<![a-zA-Z_]+)([0-9])+(?![a-zA-Z_]+) [#]?(? 但是我遇到了两个问题。第一个问题是?不受支持,第二个问题是即使是前四个字符串,我也会得到匹配项。看起来子组+中的

我正在为GTK GSourceView编写一个语言定义
.lang
,它使用。现在我想匹配普通数字和前面有
的普通数字,同时排除任何类型的字母或

对于这组字符串:

001abc_
abc_001_abc
#abc_001
#001_abc
#001
#2
10 
我尝试了正则表达式:

[#]?(?<![a-zA-Z_]+)([0-9])+(?![a-zA-Z_]+)
[#]?(?
但是我遇到了两个问题。第一个问题是
?不受支持,第二个问题是即使是前四个字符串,我也会得到匹配项。看起来子组
+
中的
()
不起作用


我认为你不能在lookback
(?)中使用量词
+

如果您只想匹配最后3个,可能可以将可选的
与单词边界之间的一个或多个数字
\d+
进行匹配
\b


谢谢你提供的关于
+
的信息。你的例子与
\001
\2
不匹配。那么
[\code]呢?\b[0-9]+\b
?你给了我一个主意。梅比你是这个意思吗?@71GA你想匹配吗?我写的东西很好!所以我会给你学分。很高兴为解决你的问题做出贡献!