带有指定字符串的标签内的正则表达式

时间:2017-03-28 14:40:52

标签: php regex

我不是很擅长正则表达式,但我有一个这样的字符串:

 $str = '<span id="MainStatuSSpan" style="background: brown;"> Incoming: 012345678  Group- SUPERMONEY &nbsp;   Fronter:  - 992236  UID: Y3281602190002004448</span>';
 $pattern = '/(?:Fronter:  - )[0-9]{1,6}/i';    
 preg_match($pattern, $str, $matches);
 print_r($matches);
 /*** ^^^^^^^ This prints :*/
 Array ( [0] => Fronter: - 992236 ) 

如果Fronter没有-或空格,我就不会获得Fronter - number

任何人都可以帮助处理在任何情况下都有效的示例,总是有Fronternumber

1 个答案:

答案 0 :(得分:1)

您可以使用Fronter:\W*[0-9]{1,6}

Fronter:\W*[0-9]{1,6}:匹配Fronter:

  • \W*:零个或多个非单词字符

  • [0-9]{1,6}一到六位

您的正则表达式也会找到与Fronter:99222236匹配的内容,因此您必须使用\b来避免溢出数字长度

Fronter:[- ]*[0-9]{1,6}\b