public static final String specialCharRegexp = "^[\u2E80-\uFE4F()()\\w.+\\-·•\\—/]*$";
时间: 2023-08-20 17:07:57 浏览: 32
特殊字符正则表达式的定义是:public static final String specialCharRegexp = "^[\u2E80-\uFE4F()()\\w. \\-·•\\—/]*$";该正则表达式用于过滤字符串中的特殊字符。它允许使用中文字符(从\u2E80到\uFE4F的范围)、括号、英文字母、数字、点、连字符、中文间隔号、中文中点、中文长破折号和斜线。其他的特殊字符都会被过滤掉。
相关问题
解释一下这个正则"^[\u2E80-\uFE4F-Za-z0-9]{1,30}(?:\u00B7[\u2E80-\uFE4F-Za-z0-9]{1,30}){0,3}$"
这个正则表达式用于匹配一个字符串,字符串包含1-30个汉字、数字、字母或中间带有分隔符“·”,最多可以有3个分隔符。具体解释如下:
- ^ 匹配字符串的开头。
- [\u2E80-\uFE4F-Za-z0-9] 匹配一个汉字、字母或数字。
- {1,30} 匹配前面的字符1-30次。
- (?:\u00B7[\u2E80-\uFE4F-Za-z0-9]{1,30}){0,3} 匹配0-3次分隔符“·”和其后面的1-30个汉字、字母或数字,其中(?:...)是一个非捕获组,表示只匹配但不捕获分组内容。
- $ 匹配字符串的结尾。
所以这个正则表达式可以匹配如下字符串:
- abcd1234
- 中国人
- A·B·C
- 阿里巴巴·腾讯·百度·京东
- 1·2·3·4
但是不能匹配如下字符串:
- a!b#c$d
- 中国人民银行
- A·B·C·D·E
- 阿里巴巴·腾讯·百度·京东·美团
- 1·2·3·4·5
System.out.println("^[\u2E80-\uFE4F-Za-z0-9]{1,30}(?:\u00B7[\u2E80-\uFE4F-Za-z0-9]{1,30}){0,3}$".matches("张三"));
这段代码用于判断一个字符串是否符合中文、英文、数字和点号中间以及长度在1到30之间的格式。但是,这段代码的语法存在错误,需要进行修正。在Java中,正则表达式需要使用双斜杠来进行转义。正确的代码应该是:
```
System.out.println("^[\u2E80-\uFE4F-Za-z0-9]{1,30}(?:\u00B7[\u2E80-\uFE4F-Za-z0-9]{1,30}){0,3}$".matches("张三"));
```
但是这段代码的判断结果是false,因为“张三”不符合正则表达式中的格式要求。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)