我有一个电子邮件ID列表,其中我只能选择那些没有ruba.com作为带有regex的域名。例如,如果我有邮箱:ads@gmail.com, dgh@rubd.com和ert@ruba.com,则正则表达式应选择前两个ID。这个问题的正则表达式应该是什么?你知道吗
我试过两种表达方式:
[a-zA-Z0-9.+-]+@[^(ruba)]+.[a-zA-Z0-9-.]+
和
[a-zA-Z0-9.+-]+@[^r][^u][^b][^a]+.[a-zA-Z0-9-.]+
以上两个都不能满足我的要求。你知道吗
Tags:
您可以使用负前瞻来确保与域不匹配ruba.com。你知道吗
消极的前瞻:
(?!rubd)
将匹配和任何你想排除的东西。此外,由于电子邮件通常不止包含单词字符(如连字符和句点),因此最好使用[\w\.\-]
而不仅仅是\w
。你知道吗DEMO
我假设email ID是指
@
符号前面的部分,否则就是完整的电子邮件地址。你知道吗.
点字符是正则表达式引擎的特殊符号 它被用来捕捉一切*
也称为Kleene plus表示要捕获前面符号的一个或多个实例,在我们的例子中是.
;基本上是说“给我每个字符”(?=@)
是一个积极的前瞻性,即一个特殊的搜索功能,确保后面的内容是@
;我使用它将光标移到@
的位置并“停止”捕获,否则+
将无限期地继续(?!@ruba\.com)
是一种消极的前瞻性,即一种特殊的搜索功能,它确保后面的内容不是(!
)@ruba\.com
;我对点进行了转义,以避免将其与之前所说的“捕获所有”符号混淆现场演示here。你知道吗
相关问题 更多 >
编程相关推荐