0

我需要创建一个正则表达式(适用于 Eclipse 的搜索/替换),只有在同一个句子之前的任何地方出现不同的匹配时,它才会匹配一组字母。

具体来说,只有当.css出现在包含jsSrc的同一行中时,我才需要匹配它。

Eclipse 不支持无限期的lookbehinds。

例子:

<link rel="stylesheet" type="text/css" href="<% { out.print( jsSrc( request, "/builder/builder.css" />

尝试的正则表达式:

\.css(?<=jsSrc)

不产生匹配的.css

4

2 回答 2

1

您使用了?<=错误的方式向后看,这是书中的示例Mastering Regular Expression:如果您有 string see Jeffs book,并且替换(?<=\b Jeff)(?=s\b)',您将得到see Jeff's book

在您的情况下,无需使用lookbehind:

jsSrc.*\.css

为我工作。
也许你只想用 替换.css部分XXX,那么你可以这样做:
Find:字段中,输入(jsSrc.*)\.css和在Replace with:字段中,输入\1XXX

于 2012-09-28T02:52:17.983 回答
0

你可以使用一个非常直接的正则表达式:

jsSrc.*\.css

这将匹配jsSrc之前包含的任何行以及.css两者之间的文本。

虽然问题中没有指定,但如果您想匹配行中引号内的文件路径,您可以使用类似的东西:

jsSrc.*"([^"]*\.css)"
于 2012-09-28T02:52:24.963 回答