我如何从字符串的开头删除数字和空格?
例如,从'13 Adam Court,Cannock'删除'13'
谢谢!
(近乎重复的道歉,我意识到我需要使用PHP来实现这一点)
答案 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()
会从字符串开头贪婪地删除所有空格或数字实例,直到不再可用为止。