regex - 如何使用 sprintf 创建一个正则表达式来匹配文本文件中的 1 个但不超过 N 个连续单词?

标签 regex matlab printf

将单词定义为包含任意数量的连续序列 字母字符或撇号后跟 0 个或多个空格。 (0,因为字符串中最后一个单词后面不会有空格)。
这是我正在使用的正则表达式,但我无法让它工作:

str = sprintf('[a-zA-Z_](0|\s){1,N}','text.txt');

最佳答案

不能用“零个或多个”空格来分隔单词。除非用特定字符分隔单词,否则无法知道单词是否结束。

编辑:OP在评论中澄清,他们想要“一个或多个空格”或文字字符0来分隔单词。

以下内容应适用于 1 个或多个空格。请注意,需要使用双引号来表示 MATLAB 字符串中的 ' 字符。

([''a-zA-Z_]+(0|\s+)){1,N}
  • [''a-zA-Z_]+ 匹配一个或多个被视为单词一部分的字符
  • 0 匹配文字字符 0
  • \s+ 匹配一个或多个空白字符
  • ( ... ) 将内容视为一个组
  • a|b 匹配 ab
  • {1,N} 捕获 1 到 N 次之间的任意数字

关于regex - 如何使用 sprintf 创建一个正则表达式来匹配文本文件中的 1 个但不超过 N 个连续单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440270/

相关文章:

regex - 正则表达式强制执行复杂密码,匹配 4 条规则中的 3 条

image - Matlab-改进图像裁剪黑边的代码

C Scanf 突然停止读取值

python - 将多个文本文件中具有一定行数的一列数据拉入一个文本文件

matlab - 将 excel 图表导出为图片(通过自动化)

C sprintf缓冲区sigsegv错误

c - 向 printf() 添加换行符会更改代码行为

regex - 词法分析的状态/转移图——*(星号)收回前向指针有什么意义?

MySQL 按 REGEXP 分组

javascript - 为什么带有全局标志的 RegExp 会给出错误的结果?