繁体   English   中英

从字符串的开头删除数字然后一个空格

[英]Remove number then a space from the start of a string

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

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

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

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

明智的话,不要在正则表达式中使用 / 作为分隔符,当您尝试执行文件路径或类似 http:// 的操作时,您会遇到可怕的倾斜牙签问题

:)

试试这个:

^\d+ (.*)$

像这样:

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

资源:

在同一主题上:

使用我在JavaScript 答案中给出的相同正则表达式,但使用preg_replace()应用它:

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

我会用

/^\\d+\\s+/

它在字符串开头寻找任意大小数字^\\d+

然后\\s+之后寻找一块空白

当您在某些字母前使用反斜杠时,它代表某些东西...

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

\\s代表一个空格 .

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

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

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

在你的另一个问题上给你的正则表达式仍然适用。 你只需要使用preg_replace()代替。

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

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

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

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

我喜欢正则表达式,但知道不要使用它,除非它提供了比非正则表达式技术更有价值的优势。 正则表达式通常比非正则表达式技术慢。

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

代码:(演示

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

输出:

'keep this part'

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM