3

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

我需要编辑下面的字符串

+70 888 777 1 1 3
to;
70888777113

我怎样才能做到这一点?

4

5 回答 5

2

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

\D               //(any non digit)

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

演示

代码:

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

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

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

演示

解释:

  • (?<=\d)\\s+(?=\d)所有被数字包围的空格
  • \+(?=\d)加号在数字的开头
于 2015-06-13T18:14:08.777 回答
1

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

然后

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

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

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

将删除+

于 2015-06-13T18:16:05.540 回答
1

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

 $string = preg_replace('/\s+/', '', $string);
于 2015-06-13T18:19:56.973 回答
0

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

String str = "+1234567";
if(str.substring(0, 0).equals("+")){
   // assign value string value expect first character 
   str = str.substring(1);
}
于 2015-06-13T19:08:26.100 回答
0

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

于 2017-07-13T16:57:20.307 回答