非常简单的正则表达式找不到我的搜索文本

时间:2016-03-27 06:17:28

标签: regex linux unix

我有这个正则表达式字符串:

 ("prodcssstart.*prodcssend","xx")

我的文件是这样的:

 prodcssstart
<!--<link href="content/bundles/css.min.css" rel="stylesheet" />-->
 prodcssend

但是当我运行它然后它找不到表达式。

有人可以建议我可能做错了什么,我已经对它进行了如此简化,但我想也许我用来匹配所有内容的。*存在问题。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

首先,you can't parse HTML with regex

但在您的情况下,问题很可能是由换行引起的,因为默认情况下,点与换行符不匹配。您需要通过正确的开关来禁用此功能(例如,Python中的re.DOTALL和Perl中的s

答案 1 :(得分:1)

您可以提出tempered greedy token solution

prodcssstart
(?:(?!prodcssend).)*
prodcssend

<强>故障:

  • 寻找prodcssstart
  • 匹配任何字符,只要后跟prodcssend
  • 匹配prodcssend

请参阅a demo on regex101.com(请注意不同的修饰符!)。