该正则表达式 是否有问题'^\\s*[\\u202d]?\\+86(\\s|\\xa0)?[0-9]+(\\s|-)?[0-9]*(\\s|-)?[0-9]*[\\u202c]?\\s*$'
时间: 2023-11-23 19:57:59 浏览: 47
该正则表达式没有问题,它的作用是匹配中国大陆的电话号码,包括区号和分机号,可以匹配以下格式的电话号码:
+86 10-12345678-1234
+86 10 12345678 1234
+861012345678
010-12345678-1234
010 12345678 1234
010123456781234
```java
String checkRE = "^\\s*[\\u202d]?\\+86(\\s|\\xa0)?[0-9]+(\\s|-)?[0-9]*(\\s|-)?[0-9]*[\\u202c]?\\s*$";
Pattern ptn = Pattern.compile(checkRE);
Matcher matStr = ptn.matcher("+86 10-12345678-1234");
System.out.println(matStr.find()); // 输出:true
```
相关问题
正则表达式的意思 '^\\s*[\\u202d]?\\+86(\\s|\\xa0)?[0-9]+(\\s|-)?[0-9]*(\\s|-)?[0-9]*[\\u202c]?\\s*$'
这个正则表达式的意思是匹配以+86开头,后面跟着一串数字,数字之间可以用空格或短横线分隔,以及可能存在的左右嵌套括号和空格。具体解释如下:
- `^` 匹配字符串的开头
- `\\s*` 匹配零个或多个空格
- `[\\u202d]?` 匹配零个或一个左嵌套括号(Unicode编码为202d)
- `\\+86` 匹配+86
- `(\\s|\\xa0)?` 匹配零个或一个空格或非断行空格(Unicode编码为xa0)
- `[0-9]+` 匹配一个或多个数字
- `(\\s|-)?` 匹配零个或一个空格或短横线
- `[0-9]*` 匹配零个或多个数字
- `(\\s|-)?` 匹配零个或一个空格或短横线
- `[0-9]*` 匹配零个或多个数字
- `[\\u202c]?` 匹配零个或一个右嵌套括号(Unicode编码为202c)
- `\\s*` 匹配零个或多个空格
- `$` 匹配字符串的结尾
因此,这个正则表达式可以匹配如下格式的字符串:
- +86 12345678901
- +8612345678901
- +86-123-45678901
- +86 123 4567 8901
- +86(123)4567 8901
正则表达式的意思 '^\\s*[\\u202d]*\\xa0?[0-9]+(\\s|\\xa0)+[0-9]+(\\s|\\xa0)*[0-9]*[\\u202c]?[\\u202d]?\\s?[1-9]*\\s*$'
这个正则表达式的意思是匹配一个字符串,该字符串满足以下条件:
- 可以以任意数量的空格或特殊字符(\u202d、\xa0)开头
- 紧接着是一个或多个数字,之间可以有一个或多个空格或特殊字符
- 紧接着是一个或多个数字,之间可以有一个或多个空格或特殊字符
- 可以有零个或多个数字,之间可以有一个或多个空格或特殊字符
可以有零个或一个特殊字符(\u202c、\u202d)
- 可以有零个或一个特殊字符(\u202d)
- 可以有零个或一个空格
- 可以有零个或多个数字
- 可以以任意数量的空格结尾
这个正则表达式可以用来匹配一些特定格式的字符串,例如电话号码、邮政编码等。
阅读全文