2011-05-03 104 views
2

我很难得到这个正则表达式的工作。我需要一个匹配单个@和单个.的模式。两者都是必需的。正则表达式匹配需要@和

我试过/(@|\.)/但这个匹配或者或者。如果有人失踪,我需要失败。

+1

他们需要按顺序出现吗?他们之间能有什么东西吗?你可以使用'var.contains(“@”)&& var.contains(“。”)'?基本上,你真的想做什么? – unholysampler 2011-05-03 20:21:43

+0

并且:您使用哪种语言/操作系统? – 2011-05-03 20:35:28

回答

1

你可以尝试这样的事情:

\[email protected]\w+\.\w+ 

(假设你喜欢[email protected]匹配的电子邮件您可以使其功能更强大,让数字等,如果你不与电子邮件有关,那么你最好只需在字符串中使用字符串函数寻找'@'和'。')

0

你想要一个看起来像@.的字符串吗?那么你需要/^(@\.|\[email protected])$/。注意:我正在逃避期限,否则.代表任何单个值。

0

如果顺序并不重要:

/^(?=[^.]*\.[^.]*$)(?=[^@]*@[^@]*$).*$/ 

包含一个精确.和只有一个@字符串匹配。

0

我能想到的最简单的是/@.*\.|\..*@/。将匹配任何字符串,只要它至少包含一个@和至少一个.字符串中的任意位置。

尽管可能字符串函数会更快/更好/更具可读性。