正则表达式忽略具有特定符号的行

时间:2017-12-07 11:43:30

标签: regex relative-path regex-lookarounds absolute-path

我正在尝试使用别名来设置将相对路径更改为绝对的正则表达式,并忽略任何已使用@符号指示别名的行以防止文件夹/文件名匹配。我有替换和匹配,但我不能用@位做忽略行。我还希望它在选择时匹配/ foldername / forward斜杠。

RegEx JP

https://regex101.com/r/vRUegE/1/

我原以为@的行会被忽略

感谢Wiktor,这是正确的回复:

Perfect working screenshot

Working example

使用WinGrep和这些正则表达式的组合,很容易在几分钟内重构数百个文件中的数百个路径!

2 个答案:

答案 0 :(得分:1)

您可以在积极的观察后添加negative lookahead (?!@)

(?<=from..)(?!@)(.*)(?=module)(.*)(module)
           ^^^^^

this regex demo(?!@)@之后找到from并且在其右边立即显示任何2个字符时,(?=module)将失败。

请注意,正则表达式可能需要进一步调整,因为newCommandTimeout在这里没有多大意义。您也可以使用(?<=from..)(?!@)(.*)(module)

答案 1 :(得分:1)

很难说你用哪种语言,似乎java,regexp对于不同的语言有点不同。

(?<=from..)(.*)(?=module)(.*(module)/g

这里你引用(。*) - e.q.任何重复的字符,你需要改为

([^\@]*)  ( or ([^@]*)   )

如参见。任何非@ char