用空格选择其中一个数字

时间:2013-09-09 00:54:51

标签: php regex

我可以在生成的文件示例中选择数字3433吗?这么多空格是我无法控制的?

BIOLOGIQUES                                                             3433     130906 / 3842

请参阅此处的示例:http://regexr.com?368ku

数字3343可能会从一个文件更改为另一个文件,但它始终具有相同的位置/

我正在使用正则表达式与PHP。

这是一个pdf文档,我使用xpdf的pdftotext函数进行转换,因此我必须将该数字从pdf更改为另一个。

定位非常糟糕,我不知道如何通过正则表达式捕获它。

我试过了:

BIOLOGIQUES [^0-9]*\K([0-9]*)(.*)

http://regexr.com?368ku 但需要所有数字, 我只需要第一个。

2 个答案:

答案 0 :(得分:3)

你这太复杂了。这样的事情会起作用:

BIOLOGIQUES\s+(\d+)

字面上匹配字符串“BIOLOGIQUES”,然后是一个或多个空白字符,然后捕获一个或多个数字,在捕获组1时保存您的数字。

在PHP中使用它:

$str = 'DES ANALYSES BIOLOGIQUES                                                                                        3433     130906 / 3842';
preg_match( '/BIOLOGIQUES\s+(\d+)/', $str, $matches);
echo $matches[1];

您可以从this demo看到这会产生:

3433

答案 1 :(得分:0)

我尝试BIOLOGIQUES[^0-9]*\K([0-9]*)()并且工作正常