我有两个表达方式:
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在cs.xyz.edu
CSK(AT)cs.xyz.edu
我如何结合以上两个?我还想在其中加入 @ ,我做的是:
(\w+)[\s\(][/at/@][\s\)](\w+)\sdot\s(\w+)\sdot\sedu
但它不起作用。有人可以帮忙吗?我有很多格式可以覆盖,但不想明确地编写每个正则表达式。
答案 0 :(得分:0)
将不同的模式放在由|
逻辑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$
答案 1 :(得分:0)
[/at/@]
与您的想法不符。 [...]
表示字符集,因此该部分与单个字符/
,a
,t
或@
匹配。
要匹配at
或@
,您需要使用:
(?:at|@)
以下是Python Regular Expression Syntax的参考资料。