我需要创建一个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
的匹配项答案 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)"