PHP正则表达式不起作用

时间:2013-03-13 20:36:21

标签: php regex

我一直在尝试下一个正则表达式

$pattern = '/([0-9]{1,2}[.]{1}([a-z|A-Z|0-9]+[\s]*)+)/';

为了检测文本中的以下事件:[number]。[text], 例如:1.text文本文本 对于下一个文本"test number one 1.first 2.second",结果为

array(3) { [0]=> string(9) "1.first 2" [1]=> string(9) "1.first 2" [2]=> string(1) "2" }

我写的正则表达式中的问题在哪里?

提前致谢!

3 个答案:

答案 0 :(得分:0)

你的问题是最后的问题,这意味着你可以在空格后匹配。它应该是:

$pattern = '/([0-9]{1,2}[.]{1}([a-z|A-Z|0-9]+[\s]*))/';

答案 1 :(得分:0)

试试这个:

$pattern = '/\d\.\w+/';
$str = "test number one 1.first 2.second 3.third 4.xyz 5.abcd";

preg_match_all($pattern, $str, $m);

print_r( $m );

输出结果为:

Array
(
    [0] => Array
    (
        [0] => 1.first
        [1] => 2.second
        [2] => 3.third
        [3] => 4.xyz
        [4] => 5.abcd
    )

)

你需要什么?我不确定我是否能够满足您的需求,所以请尝试解释一下

你可以说例如:

  

我想匹配 x后跟的数字。后跟n个字母

或类似的东西

答案 2 :(得分:0)

这是你想要做的事情:

\d+[.][\w\d\s]+?(?=$|\s\d+[.])

它将匹配此文本中的所有3次出现:"1. text test 2. some more22 3. and more"