PHP RegEx -我如何从字符串提取匹配


PHP RegEx - how do I extract matches from a string?

假设我有以下字符串:

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

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

我如何提取文本和数字到变量?更准确地说,是一个值对的数组(数组的数组)。我只是还搞不懂正则表达式……(

使用这个正则表达式:

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

with preg_match_all():

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

要捕捉4个点之后的任何内容,可以使用以下命令:

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

下面的命令也将捕获第一部分有空格的字符串:

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

将匹配文本限制在一定范围内也是一个好主意,以使正则表达式更准确:

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