为什么标记行首的正则表达式不起作用?

约翰

为什么注释的正则表达式与未注释的正则表达式的行为不同?我认为 '^' 也标志着行的开始。不是吗?

#include <iostream>
#include <regex>

int main()
{
     std::string str ("this subject has a submarine as a subsequence");
     std::regex re ("\\b(sub)([^ ]*)");
     // std::regex re ("^(sub)([^ ]*)");
     // std::regex re ("(^sub)([^ ]*)");
     
      std::cout << "entire matches:"; 
      std::regex_token_iterator<std::string::iterator> rend;
      std::regex_token_iterator<std::string::iterator> a ( str.begin(), str.end(), re );
      while (a!=rend) std::cout << " [" << *a++ << "]";
      std::cout << std::endl;
  
      return 0;
}
丹尼尔·麦克劳里

它工作得很好。它无法匹配任何内容,因为您的行不是以字母“sub”开头,而是以字母“The”开头

解释这些正则表达式:

  • \\b(sub)([^ ]*)

单词的开头,以 sub 开头,后跟一定数量的非空格字符。两个捕获组,一个用于“子”,另一个用于其他字符。

  • ^(sub)([^ ]*)

行的开始,以 sub 开头,后跟一定数量的非空格字符。两个捕获组,一个用于“子”,另一个用于其他字符。

  • (^sub)([^ ]*)

[编辑:已修复,谢谢约翰] 同上,但锚点是捕获组的一部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的正则表达式不起作用?[Java] [正则表达式] [空白问题]

即使正则表达式可以,为什么用正则表达式替换也不起作用?

为什么此正则表达式在Notepad ++(Windows)中不起作用?

为什么我的范围正则表达式语法不起作用?

为什么此正则表达式在grep中不起作用?

为什么延迟匹配在此正则表达式中不起作用?

为什么我的C ++正则表达式不起作用?

为什么带有 \[ 的正则表达式不起作用

为什么与项目标签匹配的正则表达式不起作用?

发现:为什么带有egrep的正则表达式不起作用?

为什么正则表达式在SQL Server Select语句中不起作用?

Python-为什么这个简单的正则表达式不起作用?

不知道为什么正则表达式不起作用

正则表达式的“非捕获”组为什么不起作用?

为什么此正则表达式不起作用?

为什么我的正则表达式在string.match()内不起作用?

无法理解为什么我的 Java 正则表达式不起作用

jQuery的正则表达式选择器不起作用。为什么?

为什么我的正则表达式组量词不起作用?

为什么此正则表达式不起作用?

为什么这个解析M3U的正则表达式不起作用?

为什么python正则表达式(?P = name)不起作用

为什么我更换正则表达式的时间不起作用?

为什么我的正则表达式不起作用?

为什么使用正则表达式的str.match在Pandas中不起作用

为什么我的正则表达式电子邮件验证不起作用?

为什么这个正则表达式在 Vim 语法高亮中不起作用?

为什么关于“*”模式的简单正则表达式不起作用?

为什么我的pcregrep正则表达式中的正向提前不起作用?