正则表达式 - 匹配所有数字直到字符

时间:2016-03-10 10:19:03

标签: php regex

假设我有一个像这样的字符串

1234hello567u8 915 kl15

我希望将所有数字匹配到第一个空格(所以, 12345678

我知道我可以使用它:[^\s]*来匹配所有内容直到第一个空格..但是如何

如何使用[^\s]*仅匹配数字?

3 个答案:

答案 0 :(得分:1)

在PHP中,您可以使用:

$re = '/\h.*|\D+/'; 
$str = "1234hello567u8 915 kl15"; 

$result = preg_replace($re, '', $str);
//=> 12345678 

RegEx Demo

答案 1 :(得分:0)

您无法捕获跳过单个组中其他输入的输入。

在任何工具中,你正在使用make替换:

Search: \D| .*
Replace: <blank>

搜索正则表达式匹配空格后的非数字或所有内容(包括空格)。

答案 2 :(得分:0)

正则表达式是关于匹配模式,但似乎你并不确切知道文本的模式。

我建议你喜欢这个

  1. 使用

    将所有[a-z]替换为“”

    正则表达式:"s/[a-z]//g"

    输出:"12345678 915 15"

  2. 捕获您想要的文字,

    正则表达式:"(^\d+)"

    输出:"12345678"