从字符串中删除第一个数字

Posted

技术标签:

【中文标题】从字符串中删除第一个数字【英文标题】:Remove the first single number from a string 【发布时间】:2014-11-27 14:03:28 【问题描述】:

我需要一种方法来删除字符串中的第一个数字(如果存在)。此数字后面必须跟一个空格才能删除。

示例: “3 8 GB 存储卡”应转换为:“8 GB 存储卡” “8GB 存储卡”应该保持不变。

请指教。

谢谢!

【问题讨论】:

【参考方案1】:

使用此正则表达式进行搜索:

^(\D*)\d+\s+

并用空字符串替换它。

RegEx Demo

此正则表达式匹配:

^ - 开始输入 \D* - 0 个或多个非数字 \d+ - 1 位或多位数字 \s+ - 1 个或多个空格

Objective C中使用这个正则表达式:

"^([^0-9]*)[0-9]+ +"

【讨论】:

你也应该解释一下正则表达式是如何工作的,所以对正则表达式不太熟悉的人会理解它 我会使用\b,但 OP 写道:这个数字后面必须跟一个空格才能被删除 那么 \b 不是覆盖这个吗? No \b 也将匹配 3-8 GB memory card 这不是 OP 写的。 像魅力一样工作!谢谢!

以上是关于从字符串中删除第一个数字的主要内容,如果未能解决你的问题,请参考以下文章

从字符串中的多个数字中删除前导零? [C++]

约瑟夫环

R从字符串中提取第一个数字

如何从 C 字符串中删除第一个字符?

从即时字符串中删除第一个逗号

如果存在,则从字符串中删除第一个和最后一个点