我有例如这样的字符串 - “第7路”或“第7个数字一些其他的单词”或“一些单词第8个单词”。需要正则表达式帮助PHP
我需要首次出现的数字和所有其他下一个符号第一次出现的空间。
因此,对于上面的例子,我需要这样的值“第七”,“第七”,“第八”。
然后从这些匹配像“第7”我需要提取其他操作中只有数字。
在此先感谢!
我有例如这样的字符串 - “第7路”或“第7个数字一些其他的单词”或“一些单词第8个单词”。需要正则表达式帮助PHP
我需要首次出现的数字和所有其他下一个符号第一次出现的空间。
因此,对于上面的例子,我需要这样的值“第七”,“第七”,“第八”。
然后从这些匹配像“第7”我需要提取其他操作中只有数字。
在此先感谢!
正则表达式应该是/(\d+)([^\d]+)\s/
和号码将解析为$1
和结束字符$2
示例代码:
$string = '7-th Road';
preg_match_all('/(\d+)([^\d]+)\s/', $string, $result, PREG_PATTERN_ORDER);
var_dump($result[1]);
array(1) {
[0]=> string(1) "7"
}
var_dump($result[2]);
array(1) {
[0]=> string(1) "-th"
}
谢谢!这是完美的工作!只有一个问题:这可能与这些后缀无关,可以是任何符号吗? –
你是什么意思?你在寻找7,9,15吗?然后只是数字? –
那里。为你增加了额外的搜索。 –
如果你想获得从文本只是NUMS使用它:
preg_match_all('/(\d+)[th|\-th]*?/','7-th", "7th", "8-th', $matches);
但是,如果你想删除“日”或其他只是做更换:
preg_replace('/(\d+)[th|\-th]*?/','$1', 'some string')
不确定最后一个...
你到目前为止尝试过什么?一些更清晰的例子,以及您目前使用的代码将帮助我们帮助您。 –