我有两种类型的字符串。
一个是这样的
Text Text Text+24 2009 2
另一种类型是
Text text 2005 2
我想以这种方式分割这两种类型的字符串
Text Text Text+24
2009
2
OR
Text text
2005
2
文本部分可能会有所不同,但在任何情况下,最后都有2个数值。
编辑:我试图做那样的事情preg_match_all("/.*?\\d+.*?(\\d+).*?(\\d+)/is", $txt, $matches)
不幸的是我无法理解如何使用正则表达式
答案 0 :(得分:3)
您可以在preg_match_all
中使用此正则表达式:
^(.*?)\h+(\d+)\h+(\d+)$
<强>代码:强>
$re = '/^(.*?)\h+(\d+)\h+(\d+)$/m';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
print_r($matches);
RegEx分手:
^ - Start
(.*?) - Match and capture 0 or more of any character (lazy)
\h+ - Match 1 or more horizontal whitespace
(\d+) - Match & capture 1 or more digits
\h+ - Match 1 or more horizontal whitespace
(\d+) - Match & capture 1 or more digits
$ - End