此正则表达式中的错误在哪里?对于主题字段和来自字段,我如何同时匹配两个条件?主题为“空行”(主题字段中未写任何内容),并且电子邮件来自“ assistant@mail.com”,然后接受邮件:
/^From:(.*)assistant\@gmail\.com|^Subject:\s*$/ OK
真的感谢您的帮助。
答案 0 :(得分:0)
我对您的文本及其布局进行了假设。
这行吗?
/(From:\sassistant@gmail\.com)|(Subject:.*)$/
假设您要匹配的文本为一行,我会在一组中捕获电子邮件,或者在另一组中匹配空白主题。
答案 1 :(得分:0)
答案 2 :(得分:0)
假设您有多行,一种选择可能是首先匹配From
部分,然后匹配它们之间的0+行,然后匹配Subject
部分。
反之,则可以改变逻辑模式。
^From:.*?assistant@gmail\.com.*(?:\n.*)*\nSubject:\s*$
这将匹配:
^From:.*?
从字符串开头匹配From:
,后跟任何非char的assistant@gmail\.com
匹配电子邮件.*
匹配除换行符以外的任意字符0+次(?:\n.*)
匹配0+次换行符和整行,直到该行结束为止\nSubject:\s*$
匹配换行符Subject,0 +倍空白字符并断言行的结尾另一种方式:
^Subject:\s*(?:\n.*)*\nFrom:.*?assistant@gmail\.com