否定正则表达式模式的输出
Negate the output of the regex pattern
我想否定正则表达式模式的结果,因此它应该 return 除正则表达式结果之外的所有内容。
示例字符串:
SMTP:test.abc@xyz.com;smtp:test.123@xyz.biz;sip:test.123@xyz.biz
我写了一个下面的正则表达式,输出为- test.abc@xyz.com
(?<=SMTP:)(.*?)(?=;)
现在我想要除上述结果之外的所有内容,即
SMTP:;smtp:test.abc@xyz.biz;sip:test.abc@xyz.biz
我正在尝试否定,但它不起作用。
非常感谢任何帮助。
可能过于复杂了,但是如果你需要多行匹配,smtp账号可以在一行的开头,这个:
(SMTP:)|(;[^(SMTP)]*)|(^[^(SMTP)]*)
将匹配:
SMTP:
;
之后的任何内容,直到另一个 SMTP
- 一行开头的任何内容(不需要 ;)直到另一个
SMTP
如果电子邮件名称中包含 SMTP
,这可能会崩溃,但我希望你不会有任何内容。
另一种方法是使用匹配的正则表达式 (?<=\SMTP:)(.*?)(?=\;)
,并不断从字符串中删除匹配的内容。
我想否定正则表达式模式的结果,因此它应该 return 除正则表达式结果之外的所有内容。
示例字符串:
SMTP:test.abc@xyz.com;smtp:test.123@xyz.biz;sip:test.123@xyz.biz
我写了一个下面的正则表达式,输出为- test.abc@xyz.com
(?<=SMTP:)(.*?)(?=;)
现在我想要除上述结果之外的所有内容,即
SMTP:;smtp:test.abc@xyz.biz;sip:test.abc@xyz.biz
我正在尝试否定,但它不起作用。
非常感谢任何帮助。
可能过于复杂了,但是如果你需要多行匹配,smtp账号可以在一行的开头,这个:
(SMTP:)|(;[^(SMTP)]*)|(^[^(SMTP)]*)
将匹配:
SMTP:
;
之后的任何内容,直到另一个SMTP
- 一行开头的任何内容(不需要 ;)直到另一个
SMTP
如果电子邮件名称中包含 SMTP
,这可能会崩溃,但我希望你不会有任何内容。
另一种方法是使用匹配的正则表达式 (?<=\SMTP:)(.*?)(?=\;)
,并不断从字符串中删除匹配的内容。