java 写一个正则表达式,字符串中智能包含汉字、英文字母、数字、逗号、-、括号、,把不符合的数据过滤掉,返回过滤掉的数据
时间: 2023-11-08 22:02:59 浏览: 116
Java正则表达式过滤出字母、数字和中文
可以使用以下正则表达式来匹配上述要求的字符串:
```
[^\u4e00-\u9fa5a-zA-Z0-9,-()\uff08\uff09]
```
这个正则表达式可以匹配除了汉字、英文字母、数字、逗号、-、括号之外的任何字符。
Java 代码示例:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args) {
String input = "Hello, 你好, 123-456, (abc)";
String regex = "[^\u4e00-\u9fa5a-zA-Z0-9,-()\uff08\uff09]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
sb.append(matcher.group());
}
System.out.println("过滤掉的数据:" + sb.toString());
String filteredInput = input.replaceAll(regex, "");
System.out.println("过滤后的数据:" + filteredInput);
}
}
```
输出结果:
```
过滤掉的数据:
过滤后的数据:Hello, 你好, 123-456, (abc)
```
其中,`sb.toString()` 就是过滤掉的数据,`filteredInput` 就是过滤后的数据。
阅读全文