【问题标题】:Remove numeric part of string with length 5 or more digits删除长度为 5 位或更多位的字符串的数字部分
【发布时间】:2021-12-26 06:12:43
【问题描述】:

我有NSString(墨西哥的某个城市位置),前面有一个邮政编码。邮政编码总是 5 位数。

81124 Corerepe, Sin.

我需要删除该邮政编码,删除该字符串的一个数字部分,但仅当该数字的长度为 5 位或更大时。这在 Java (android) 中是一项简单的任务,但在 XCode 中……似乎以前没有人这样做过……

谁能帮帮我,

谢谢。

【问题讨论】:

  • 这只是使用Stringcomponents(separatedBy:)并计算第一个组件的字母数,对吧?
  • 这里:string.replaceAll("\\d{5}", "") - 这是来自 Java。它基本上是删除数字 - 仅当其中 5 个在行中时。我在 Objective-C 中也需要同样的东西。 B
  • 显示你做了什么。
  • 如果是数字,则没有删除前五位数字的功能。你必须自己写。你是怎么用 Java 做的?
  • 谷歌“NSString 正则表达式”

标签: objective-c xcode


【解决方案1】:

您似乎想要string.replaceAll("\\d{5}", "") 的等价物。 我不使用Java,但我想有一个NSRegularExpression。请注意,我会改用^\\d{5},因为81124 Corerepe, 12345 Sin. 会输出 Corerepe, Sin.

Objective-C 等效项是:

NSMutableString *address = [@"81124 Corerepe, 12345 Sin." mutableCopy];
[address replaceOccurrencesOfString:@"^\\d{5}" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, [address length])];
NSLog(@"Address: %@", address);

输出:

$>Address:  Corerepe, 12345 Sin.

旁注,我什至会使用@"^\\d{5}\\s*" 来删除空白。

【讨论】:

  • 就是这样。你搞定了。我所做的一项微小调整就是删除^ - 这样,如果邮政编码出现在字符串中间的任何位置,那么它仍然会被删除。非常感谢。
  • 好吧,我只是一开始就想到了。但是{5} 超过 5 位数就不行了,对吧?你可能想要{5,}
  • 好的。这是一个有趣的观点。俄罗斯的邮政编码是 6 位数字,只有数字。我认为更困难的任务是识别加拿大邮政编码 - 有史以来最复杂的 - V3C8E6 - 交替字母、数字和 6 个字符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2012-12-14
相关资源
最近更新 更多