【问题标题】:Remove plus sign from beginning and replace whitespaces of number从开头删除加号并替换数字的空格
【发布时间】:2015-08-29 13:54:20
【问题描述】:

我需要在Tasker“变量搜索替换”中编辑字符串变量,但无法识别特殊字符。

我需要编辑下面的字符串

+70 888 777 1 1 3
to;
70888777113

我怎样才能做到这一点?

【问题讨论】:

    标签: android regex variables tasker


    【解决方案1】:

    您可以使用以下方法进行匹配(简单方法):

    \D               //(any non digit)
    

    并替换为''(空字符串)

    DEMO

    代码:

    str = str.replaceAll("\\D", "");
    

    编辑:如果您的字符串是另一个字符串的一部分,请使用以下内容:

    (?<=\d)\s+(?=\d)|\+(?=\d)
    

    DEMO

    解释:

    • (?&lt;=\d)\\s+(?=\d) 数字包围的所有空格
    • \+(?=\d) 加号在数字开头

    【讨论】:

    • 请解释否决票?以便我可以改进答案?
    • 我在 Tasker 变量搜索替换模块的搜索部分输入 \D。这是工作。现在直接给我回70888777113。
    • @BlackWhite 是的,它会的.. :)
    【解决方案2】:

    如果String tmp = "+70 888 777 1 1 3";

    然后

       tmp = tmp.replaceAll("\\s+", "");
    

    将从tmp 中删除所有空白,并且

    if (tmp.startWith("+")) {
        tmp = tmp.substring(1, tmp.length());
    }
    

    将删除+

    【讨论】:

      【解决方案3】:

      您可以使用以下方法替换字符串中的所有空格:

       $string = preg_replace('/\s+/', '', $string);
      

      【讨论】:

      • 这不是 PHP,问题不只是替换空格!
      【解决方案4】:

      试试这段代码,它在java中运行良好

      String str = "+1234567";
      if(str.substring(0, 0).equals("+")){
         // assign value string value expect first character 
         str = str.substring(1);
      }
      

      【讨论】:

        【解决方案5】:

        使用下面的代码 字符串 tmp = "+70 888 777 1 1 3"; tmp replaceAll("[^0-9]+","");

        【讨论】: