我一直在尝试下一个正则表达式
$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" }
我写的正则表达式中的问题在哪里?
提前致谢!
答案 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"