正则表达式匹配表达式而不是在行的开头

汉斯·德·史瑞佛(Hans De Schryver)

一个多小时我一直在head头,但没有结果。因此,该寻求帮助了。

在以下(多行)文本中:
Waltzes15
Waltzes卷。15
Waltzes卷。一个
华尔兹,卷15
15:华尔兹

粗体部分是到目前为止我想到的RegEx的匹配项:
(?!^),*\s*(?:vol[ume]*\.*)\s*(?=[0-9A-Z]+)

除最后一个外,所有其他内容都是正确的,因为最后一行位于行首,因此不应包括在内。
据我可以在文档告诉http://www.regular-expressions.info/refadv.html,在(?!^)环视部分的表达应该排除比赛发现,*\s*(?:vol[ume]*\.*)\s*(?=[0-9A-Z]+)在一行的开头,但不似乎有效。

另一方面,该表达式(?!^)op[us]*\.*\s*(?=[0-9]+)可以正常工作,并且在以下文本的最后一行中不返回匹配项:
Waltzes op。15
Waltzes作品15 15
作品:waltzes

第一个表达式我在做什么错?

拉维(Ravi K Thapliyal)

这就是为什么您的正则表达式无法按预期工作的原因

  • 背后的消极面不见了<它应该是(?<!^)
  • 后面的回溯应该(?:vol[ume]*\.*)立即开始
  • 您需要启用多行(?m)(没有多行^只能匹配输入的开始)

因此,经过这些更正的正则表达式变为

(?m),*\s*(?<!^)(?:vol[ume]*\.*)\s*(?=[0-9A-Z]+)

以上工作,但可以进一步改进。使用[ume]*还会使match等匹配voleeevolmeu而不是与绑定*,并且.可以通过使其成为可选?

(?m),?\s*(?<!^)(?:vol\.?|volume)\s*(?=[0-9A-Z]+)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式匹配| 但||不是

来自分类Dev

正则表达式无法在行首匹配空格

来自分类Dev

如果正则表达式匹配A而不是正则表达式B,则Perl打印

来自分类Dev

正则表达式模式-匹配以@开头的单词

来自分类Dev

正则表达式匹配以“ $”开头的单词

来自分类Dev

正则表达式-如果模式以\开头,则不匹配

来自分类Dev

如何用正则表达式匹配以$开头的变量?

来自分类Dev

正则表达式匹配不带“]”开头的括号

来自分类Dev

正则表达式:不以短语开头的匹配行

来自分类Dev

正则表达式匹配以@开头的单词

来自分类Dev

正则表达式匹配不带“]”开头的括号

来自分类Dev

正则表达式匹配以空格字符开头的行

来自分类Dev

正则表达式匹配字符串以@ 开头

来自分类Dev

正则表达式不是以数字开头

来自分类Dev

正则表达式以@符号开头

来自分类Dev

表达式不匹配正则表达式

来自分类Dev

正则表达式匹配纠结的表达式

来自分类Dev

使用正则表达式匹配表达式

来自分类Dev

正则表达式匹配多个表达式?

来自分类Dev

正则表达式 URL 表达式匹配

来自分类Dev

正则表达式匹配数字不是以字符串开头

来自分类Dev

匹配字符串的正则表达式不是以字母开头或结尾

来自分类Dev

JavaScript正则表达式匹配*不是*行首

来自分类Dev

正则表达式替换匹配全部而不是单个

来自分类Dev

正则表达式匹配整行而不是标签之间

来自分类Dev

正则表达式匹配所有`,`而不是\ [\]

来自分类Dev

从正则表达式获取“组”,而不是匹配项

来自分类Dev

JavaScript - 正则表达式匹配不是函数

来自分类Dev

如何匹配整个正则表达式而不是子表达式

Related 相关文章

热门标签

归档