假设我有以下字符串:
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'. ]+)