PHP RegEx - 如何从字符串中提取匹配项?

时间:2011-12-11 08:35:32

标签: php regex

说我有以下字符串:

BlahBlah........1.000
Whatevah....2.000
Something......6.500

...也就是说,有些文字,后跟四个或更多点,后跟一个数字(可能有一个点作为分隔符),然后是换行符(Linux或Windows,我不知道这是否重要)。它是较大字符串的一部分。

如何将文本和数字提取到变量中?更确切地说是一对值对(数组数组)。我只是无法理解正则表达式...... :(

1 个答案:

答案 0 :(得分:4)

使用this正则表达式:

(?<word>\w+)\.+(?<number>\d+(\.\d+)?)

preg_match_all()

preg_match_all("/(?<word>\w+)\.+(?<number>\d+(\.\d+)?)/", $yourString, $theArrayYouWantToStoreMatchesInIt);

要捕获4点后的任何内容,您可以使用this

(?<word>\w+)\.{4,}(?<anything>.*)

following还将捕获第一部分中包含空格的字符串:

(?<beforeDots>[^\.]+)\.{4,}(?<afterDots>.*)

将匹配的文字限制在特定字符范围内以使regex更准确,这也是一个好主意:

(?<beforeDots>[a-zA-Z0-9 ]+)\.{4,}(?<afterDots>[a-zA-Z0-9\. ]+)