PHP正则表达式删除数字然后一个空格?

时间:2010-09-06 22:27:48

标签: php regex

我如何从字符串的开头删除数字和空格?

例如,从'13 Adam Court,Cannock'删除'13'

谢谢!

(近乎重复的道歉,我意识到我需要使用PHP来实现这一点)

6 个答案:

答案 0 :(得分:2)

因为其他人都在走 \ d + \ s 路线,所以我会给你一个大脑死的答案

$str = preg_replace("#([0-9]+ )#","",$str);

明智的话,不要使用/作为你的正则表达式的分隔符,当你尝试做文件路径或类似http://

之类的东西时,你会遇到可怕的倾斜牙签问题

:)

答案 1 :(得分:1)

试试这个:

^\d+ (.*)$

像这样:

preg_replace ("^\d+ (.*)$", "$1" , $string);

资源:

关于同一主题:

答案 2 :(得分:1)

使用我在JavaScript answer中提供的相同正则表达式,但使用preg_replace()应用它:

preg_replace('/^\d+\s+/', '', $str);

答案 3 :(得分:1)

我用

/^\d+\s+/

字符串的开头 ^\d+

中查找任意大小的数字

然后在 \s+

之后查找空格的补丁

当您在某些字母之前使用反斜杠时,它代表某些内容......

\d 代表一个数字 0,1,2,3,4,5,6,7,8,9

\s 代表空格

在最后添加一个加号(+),你可以......

\d+ 一系列数字(数字)

\s+ 多个空格(错别字等)

答案 4 :(得分:1)

您的其他问题上的same regex I gave you仍然适用。您只需使用preg_replace()代替。

搜索/^[\s\d]+/并替换为空字符串。例如:

$str = preg_replace(/^[\s\d]+/, '', $str);

这将从字符串的开头以任何顺序删除数字和空格。对于只删除数字后跟空格的内容,请参阅BoltClock的答案。

答案 5 :(得分:0)

如果所有输入字符串都具有相同的预期格式,并且您通过从左修剪所有数字和空格(无论它们在字符串开头的出现顺序)而获得的结果都是相同的,那么您实际上并不需要启动正则表达式引擎。

我喜欢正则表达式,但不使用它,除非它比非正则表达式技术提供了宝贵的优势。正则表达式通常比非正则表达式技术慢。

ltrim()与包含空格和数字的字符掩码一起使用。

代码:(Demo

var_export(
    ltrim('420 911 90210 666 keep this part', ' 0..9')
);

输出:

'keep this part'

字符串是否也以空格开头也没关系。 ltrim()会从字符串开头贪婪地删除所有空格或数字实例,直到不再可用为止。