寻找值直到正则表达式

时间:2013-12-04 09:37:20

标签: php regex

我想从字符串中提取值。这是一个示例字符串

“示例字符串名称:Mosa电话:020202020电子邮件:email@domain.com示例字符串的其余部分”

手机不一定是数字序列(00-98550-22)或(+ 025-588)或(92122/222)

好消息是这些字段总是连续的,要么用制表符,空格字符或新行分隔。

所以我在想如何找到字段直到找到下一个字段,所以我们可以说找到姓名:然后继续直到找到电话:

我正在尝试使用正则表达式实现此目的

这是我已编写的代码,但每个字段都是单独评估的

    $namepattern = "/(Name\:\s[a-zA-Z]+\s[a-zA-Z]+)/";
    $phonepattern = "/(Phone\:\s\d+)/";
    $emailpattern = "/(Email:\s([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})))/";

2 个答案:

答案 0 :(得分:0)

我正在使用这个正则表达式来匹配姓名,电话和电子邮件:

/Name:\s(.+)\sPhone:\s(\d+)\sEmail:\s([a-zA-Z0-9_-]+@[a-zA-Z0-9]+.[a-zA-Z]+)/

以下是演示:http://regex101.com/r/uO4tF7

答案 1 :(得分:0)

这将匹配所需的

    /Name:\s(.+)\s*Phone:\s(.*)\s*Email:\s([a-zA-Z0-9_.-]+@[a-zA-Z0-9]+.[a-zA-Z]+)/