【问题标题】:Remove postalcode from string (Flutter/Dart)从字符串中删除邮政编码 (Flutter/Dart)
【发布时间】:2021-03-07 04:12:26
【问题描述】:

也许这是一个愚蠢的问题,但是如何使用 regExp 从字符串中删除数字和“-”符号?

我有字符串:“4502-42 something”,我只想拥有“something”。

编辑:

字符串是不同的,例如: “2232-233 东西”, “别的”, “223-4SomethingElseElse”等。

我们可以说我想删除前面的所有内容,包括空格。

【问题讨论】:

  • 您是否在问如何删除所有内容,包括(第一个)空格?
  • 问题是有些字符串很好,有些包含代码和空格(例如:“1723-243 SomeCity”和“AnotherCity”)所以,是的,我们可以这么说。删除所有包括第一个空格

标签: flutter dart


【解决方案1】:

@julemand101 - 非常感谢 ;)

我稍微改动了一下,我的解决方案是:

 static String removeCode(String str) =>
      str.replaceFirst(RegExp(r'\d*-\d* '), '');

我只是在我想格式化的字符串上调用这个方法,它看起来像这样:

model.city.isSafe()
      ? Formatter.removeCode(model.city)
      : "No info",

*isSafe 是一种检查不是空/空字符串等的方法。

【讨论】:

    【解决方案2】:

    您可以使用 split 方法,然后访问空格后的字符串。

      var string = "Hello world!";
      List<String> strings = string.split(" ");
      var res = strings.where((element) => element != strings.first);
    

    input : Hello world!

    output : world!

    【讨论】:

    【解决方案3】:

    这样的事情应该可以解决问题。这也比仅仅说“跳过所有内容到第一个空格”更安全,因为城市名称可以包含空格。

    void main() {
      final input = [
        "2232-233 Something",
        "SomethingElse",
        "223-4 SomethingElseElse",
        "223-4 SomethingElseElse Else"
      ];
    
      input
          .map((string) => string.replaceFirst(RegExp(r'\d*-\d* '), ''))
          .forEach(print);
      // Something
      // SomethingElse
      // SomethingElseElse
      // SomethingElseElse Else
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-16
      • 2014-01-31
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多