RegEx取代@除非前面有/

Dav*_*son 4 .net regex

我需要一个用于替换@ with/@的正则表达式,除非@前面带有<.我一直在摆弄RegExHero试图做到这一点,但这不太对.值得注意的是,在正则表达式方面我很无能为力.

这是我尝试过的:

正则表达式 [^<]\@

替换字符串 &/@

目标字符串 Flip@

这几乎可以工作,因为它不会取代Flip <@.但它不起作用,因为它取代了Flip @到Fli/@.基本上,我需要在符号前面没有尖括号的情况下保留原始字符.

And*_*ong 9

你的措辞方式正是负面的后观断言的定义.

(?<!<)@
Run Code Online (Sandbox Code Playgroud)

一般来说,

(?<!foo)bar
Run Code Online (Sandbox Code Playgroud)

意思是,"bar"不遵循"foo".一个积极的回顾后,

(?<=foo)bar
Run Code Online (Sandbox Code Playgroud)

相反,"bar" "foo" 相反.

也有看aheads,

bar(?=foo)
Run Code Online (Sandbox Code Playgroud)

意思是"bar"后跟"foo".

  • 作为一个组,这些被称为"零宽度断言" (2认同)