Php Regex获得拆分电子邮件部分预匹配
我有这样一个固定的解释Php Regex获得拆分电子邮件部分预匹配,php,regex,Php,Regex,我有这样一个固定的解释 $regex = '/(^info@)|(@onemore\.com)|(^someother@)|(@spam\.com)/i'; 我需要获取电子邮件字符串中的所有匹配项: 例如: 如果我有这样一封电子邮件: info@spam.com preg_match_all($regex, 'info@spam.com', $matches); 应该返回一个带有 1) info@ 2) @spam.com 但它只返回info@match 如果我喜欢这个,还有一个例子: p
$regex = '/(^info@)|(@onemore\.com)|(^someother@)|(@spam\.com)/i';
我需要获取电子邮件字符串中的所有匹配项:
例如:
如果我有这样一封电子邮件:
info@spam.com
preg_match_all($regex, 'info@spam.com', $matches);
应该返回一个带有
1) info@
2) @spam.com
但它只返回info@
match
如果我喜欢这个,还有一个例子:
preg_match_all($regex, 'someother@spam.com', $matches);
结果应包含
1)someother@
2)@spam.com
有更多的组合,但这是一个预期的结果。
有什么建议吗?使用积极的前瞻性断言来进行重叠匹配
(?=^(.*@))|(@.*)
或
如果你想要一个特定的解决方案,那么你可以使用这个
(?=^((?:info|someother)@))|(@spam\.com$)
从组索引1和2中抓取第一部分和第二部分
使用肯定的先行断言来进行重叠匹配
(?=^(.*@))|(@.*)
或
如果你想要一个特定的解决方案,那么你可以使用这个
(?=^((?:info|someother)@))|(@spam\.com$)
从组索引1和2中抓取第一部分和第二部分
使用肯定的先行断言来进行重叠匹配
(?=^(.*@))|(@.*)
或
如果你想要一个特定的解决方案,那么你可以使用这个
(?=^((?:info|someother)@))|(@spam\.com$)
从组索引1和2中抓取第一部分和第二部分
使用肯定的先行断言来进行重叠匹配
(?=^(.*@))|(@.*)
或
如果你想要一个特定的解决方案,那么你可以使用这个
(?=^((?:info|someother)@))|(@spam\.com$)
从组索引1和2中抓取第一部分和第二部分
还有一个问题,如果我还需要匹配完整的电子邮件,我应该使用什么
someemail@somedomain.com
?还有一个问题,如果我还需要匹配完整的电子邮件,我应该使用什么someemail@somedomain.com
?还有一个问题,如果我还需要匹配完整的电子邮件someemail@somedomain.com
?还有一个问题,如果我还需要匹配完整的电子邮件,我应该使用什么someemail@somedomain.com
?