我想要一个在遇到“整数xyz”时会生成匹配但正只返回'xyz'作为匹配文本的正则表达式。 'xyz'可以是标识符(字母+数字+下划线)。
xyz本身不产生匹配,只有xyz前面带有'integer'
谢谢!
答案 0 :(得分:1)
那是不可能的。如果你想让它在“整数xyz”中匹配xyz而不是“just xyz”,那么你真的在寻找“整数xyz”的匹配。
您可能需要做的是期望匹配将是“整数xyz”,然后清理匹配以提取“xyz”部分。
答案 1 :(得分:1)
这取决于您使用的编程语言。你需要一个带有组的正则表达式,第二个大括号()
包含变量名。
integer\s+([^,;\s]+)
答案 2 :(得分:1)
用什么语言?在Perl 5.10或PHP 5中,我使用\K
:
/integer \K\w+/
对于大多数其他语言,我建议使用lookbehind:
(?<=integer )\w+
如果是JavaScript,我建议成为Steve Levithan's blog的读者。想想看,我建议无论如何。 : - )
当然,假设正则表达式必须只匹配变量名。否则,我会按照其他响应者的建议使用捕获组。
答案 3 :(得分:0)
/integer\s+([a-zA-Z0-9_]+)/
然后得到反向引用\ 1
答案 4 :(得分:0)
我错过了什么,或者你不会把xyz放在括号中,其中xyz是你关心的(在你的情况下看起来像[a-zA-Z0-9 _] +)?
所以 整数([a-zA-Z0-9 _] +)
然后根据您的语言
引用括号中的$ 1或等价物