结合正则表达式进行电子邮件抓取
Combining regular expressions for email scraping
我有两种表达方式:
1. (\w+)[\s\(]at[\s\)](\w+)\sdot\s(\w+)\sdot\sedu
2. (\w+)[\s\(]at[\s\)](\w+)\.(\w+)\.edu
第一个标识:
csk at cs dot xyz dot edu
csk(at)cs dot xyz dot edu
第二个标识:
csk at cs.xyz.edu
csk(at)cs.xyz.edu
如何结合以上两者?我还想在其中包含 @,我所做的是:
(\w+)[\s\(][/at/@][\s\)](\w+)\sdot\s(\w+)\sdot\sedu
但它不起作用。有人可以帮忙吗?我有很多格式要涵盖,但不想明确地编写每个正则表达式。
将不同的模式放在由 |
逻辑 OR 运算符分隔的非捕获组中。
(\w+)[\s\(](?:at|@)[\s\)](\w+)(?:\sdot\s(\w+)\sdot\sedu|\.(\w+)\.edu)
如有必要,添加锚点。
^(\w+)[\s\(](?:at|@)[\s\)](\w+)(?:\sdot\s(\w+)\sdot\s|\.(\w+)\.)edu$
[/at/@]
与您认为的不符。 [...]
表示一个字符集,因此该部分匹配单个字符 /
、a
、t
或 @
.
为了匹配 at
或 @
,您需要使用:
(?:at|@)
这是对 Python 的 Regular Expression Syntax 的引用。
我有两种表达方式:
1. (\w+)[\s\(]at[\s\)](\w+)\sdot\s(\w+)\sdot\sedu
2. (\w+)[\s\(]at[\s\)](\w+)\.(\w+)\.edu
第一个标识:
csk at cs dot xyz dot edu
csk(at)cs dot xyz dot edu
第二个标识:
csk at cs.xyz.edu
csk(at)cs.xyz.edu
如何结合以上两者?我还想在其中包含 @,我所做的是:
(\w+)[\s\(][/at/@][\s\)](\w+)\sdot\s(\w+)\sdot\sedu
但它不起作用。有人可以帮忙吗?我有很多格式要涵盖,但不想明确地编写每个正则表达式。
将不同的模式放在由 |
逻辑 OR 运算符分隔的非捕获组中。
(\w+)[\s\(](?:at|@)[\s\)](\w+)(?:\sdot\s(\w+)\sdot\sedu|\.(\w+)\.edu)
如有必要,添加锚点。
^(\w+)[\s\(](?:at|@)[\s\)](\w+)(?:\sdot\s(\w+)\sdot\s|\.(\w+)\.)edu$
[/at/@]
与您认为的不符。 [...]
表示一个字符集,因此该部分匹配单个字符 /
、a
、t
或 @
.
为了匹配 at
或 @
,您需要使用:
(?:at|@)
这是对 Python 的 Regular Expression Syntax 的引用。