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

regex to ignore lines with specific symbol

我正在尝试使用正则表达式将更改相对路径设置为带有别名的绝对路径,并忽略任何已用 @ 符号指示的带有别名的行,以防止 folder/file 名称匹配。我已经了解了 replace 和 match ,但我不能用 @bit 做忽略行。我也希望它在选择时匹配 /foldername/ 正斜杠任一侧。

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

我本以为带@的行会被忽略

感谢 Wiktor,以下是正确的回复:

Working example

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

您可以在正后视后添加 negative lookahead (?!@)

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

参见this regex demo。一旦在 from 之后找到 @ 并且紧接其右侧的任何 2 个字符,(?!@) 将无法匹配。

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

很难说您使用哪种语言,似乎 java,不同语言的正则表达式有点不同。

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

这里你指的是 (.*) - e.q。任何重复字符,您需要更改为

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

e.q。任何非@char