正则表达式匹配整个字符串
Posted
技术标签:
【中文标题】正则表达式匹配整个字符串【英文标题】:Regex match whole string 【发布时间】:2014-03-16 03:21:15 【问题描述】:我有以下模式:
[ \n\t]*([a-zA-Z][a-zA-Z0-9_]*)[ \n\t]+((char)[ \n\t]*\[[ \n\t]*([0-9]+)[ \t\n]*\]|(char)|(int)|(double)|(bool)|(blob)[ \n\t]*\[[ \n\t]*([0-9]+)[ \t\n]*\])[ \n\t]*
你可以在这里试试:http://regex101.com/r/vA0xG9
在第一个捕获组([a-zA-Z][a-zA-Z0-9_]*)
,我想抓取只以a-zA-Z
开头的单词。
以下两个字符串相等:
cpf char[12]
,
9cpf char[12]
它忽略9
数字并与第一个字符串相等。
我尝试使用这个捕获组:(ˆ[a-zA-Z][a-zA-Z0-9_]*$)
,但没有成功。
我正在使用 lib regex.h
。
我该怎么办?
谢谢。
【问题讨论】:
【参考方案1】:把^放在整个事情的开头,把$放在最后
^[ \n\t]*([a-zA-Z][a-zA-Z0-9_]*)[ \n\t]+((char)[ \n\t]*\[[ \n\t]*([0-9]+)[ \t\n]*\]|(char)|(int)|(double)|(bool)|(blob)[ \n\t]*\[[ \n\t]*([0-9]+)[ \t\n]*\])[ \n\t]*$
如果你想匹配空格,我也建议用 \s 而不是 [ \n\t]。
【讨论】:
以上是关于正则表达式匹配整个字符串的主要内容,如果未能解决你的问题,请参考以下文章