需要Regexp帮助PHP


Need Regexp help PHP

例如,我有这样的字符串- "7-th Road"或"7th number some other words"或" some word eight -th word"。

我需要得到第一个出现的数字和所有其他的下一个符号到第一个出现的空间。

对于上面的例子,我需要这样的值"7-th", "7th", "8-th"。

然后从这些匹配中,如"7-th",我只需要在其他操作中提取数字。

提前感谢!

Regex应该是/('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"
}

你想要这样的东西吗?

#('d+)-?(?:st|nd|rd|th)#
示例

如果你想从文本中获取数字,使用它:

preg_match_all('/('d+)[th|'-th]*?/','7-th", "7th", "8-th', $matches);

但如果你想删除'th'或其他,只需执行替换:

preg_replace('/('d+)[th|'-th]*?/','$1', 'some string')