我有例如这样的字符串 - “第7道”或“第7道其他一些词”或“第8道字”。
我需要第一次出现数字,所有其他下一个符号出现在第一次出现的空间。
因此,对于上面的例子,我需要这样的值“7-th”,“7th”,“8-th”。
然后从像“7-th”这样的比赛中,我需要在其他操作中仅提取数字。
提前致谢!
答案 0 :(得分:4)
正则表达式应为/(\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"
}
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您想从文本中获取数字,请使用它:
preg_match_all('/(\d+)[th|\-th]*?/','7-th", "7th", "8-th', $matches);
但是如果你想删除n#39; th'或其他只是做替换:
preg_replace('/(\d+)[th|\-th]*?/','$1', 'some string')
不确定最后一个......