【问题标题】: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

我该怎么办?

谢谢。

【问题讨论】:

    标签: c++ regex string


    【解决方案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]。

    【讨论】:

      猜你喜欢
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      相关资源
      最近更新 更多