RegEx用于在线的任何部分进行匹配

时间:2012-09-26 14:24:00

标签: regex eclipse

我正在使用其RegEx搜索功能在Eclipse中搜索大型代码库。我需要找到没有<script>属性的src代码。我是RegEx的新手,但能够一起破解:

^.*(^<script(?!.*src).*)$

这与我要查找的标签相匹配,但前提是<script>标记之前的行上没有任何内容。如果有空格或任何东西,则不匹配。

正确匹配:

<script type="text/javascript">

不匹配:

      <script type="text/javascript">

如何修改表达式以使其在行的任何部分匹配?

我还尝试过前置^\s*[ ]*(?x)但没有成功。

3 个答案:

答案 0 :(得分:1)

你很接近,但可以将其简化为<script(?!.*src.*)>

您对行的开头或结尾并不感兴趣,因此不需要包含这些方面。

顺便说一句,是第二次^让你失望。

答案 1 :(得分:1)

只需使用^.*(<script(?!.*src).*)$

即可

答案 2 :(得分:1)

安全的方法是使用正则表达式模式(<script\b(?![^>]*\bsrc=)[^>]*>)