如果只在句子中出现另一个单词时,如何创建一个RegEx来匹配单词?

时间:2012-09-28 02:48:21

标签: javascript regex eclipse aptana

我需要创建一个RegEx(在Eclipse的搜索/替换中工作),只有在同一个句子之前的任何地方发生不同的匹配时才会匹配一组字母。

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

Eclipse不支持无​​限期的lookbehinds。

示例:

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

尝试了regEx:

\.css(?<=jsSrc)

不会产生 .css

的匹配项

2 个答案:

答案 0 :(得分:1)

您使用了lookbehind ?<=错误的方法,这里是来自书籍Mastering Regular Expression的示例:提供字符串see Jeffs book,并将(?<=\b Jeff)(?=s\b)替换为{{1} }},您将获得'

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

see Jeff's book

对我有用。
也许您只想用jsSrc.*\.css 替换.css部分,然后您可以这样做:
XXX字段中输入Find:(jsSrc.*)\.css字段,输入Replace with:

答案 1 :(得分:0)

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

jsSrc.*\.css

这将匹配jsSrc之前包含.css的任何一行,两者之间都有文字。

虽然未在问题中指定,但如果要匹配行中引号内的文件路径,可以使用以下内容:

jsSrc.*"([^"]*\.css)"