温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java正则怎么匹配特殊符

发布时间:2026-07-24 07:53:14 来源:亿速云 阅读:122 作者:小樊 栏目:编程语言

在 Java 里**正则表达式匹配“特殊字符/符号”**通常分几种情况,我按常见需求给你总结一下,基本都能覆盖 90% 的使用场景。


一、什么是“特殊字符”

在正则中,下面这些字符属于元字符(有特殊含义):

.  *  +  ?  ^  $  {  }  [  ]  (  )  \  |  /

如果你想匹配这些字符本身,就必须 转义。


二、Java 中正确转义(重点)

✅ Java 字符串 + 正则要 双重转义

String regex = "\\.";   // 匹配 . 本身
String regex2 = "\\*";  // 匹配 *

因为:

  • \ 在 Java 字符串里是转义
  • \ 在正则里也是转义

三、匹配单个特殊符号

示例:匹配 .

String text = "a.b";
boolean match = text.matches("a\\.b");
System.out.println(match); // true

四、匹配多个特殊符号中的任意一个

用 [ ](字符类)

String regex = "[.*+?]";

表示:匹配 . 或 * 或 + 或 ?

"a.b".matches("a[.*+?]b"); // true

五、匹配“所有特殊字符”(常见需求)

✅ 推荐写法(最常用)

String regex = "[^a-zA-Z0-9]";

含义:不是字母和数字 = 特殊字符


✅ 包含中文、下划线的情况

String regex = "[^a-zA-Z0-9\u4e00-\u9fa5_]";

六、匹配“任意特殊字符(包括空格、标点)”

String regex = "\\p{Punct}";

\p{Punct} 表示:

!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

示例:

"a,b".matches("a\\p{Punct}b"); // true

七、匹配“包含特殊字符的字符串”

判断是否包含特殊字符

boolean hasSpecial = text.matches(".*[^a-zA-Z0-9].*");

八、Pattern.quote(不想写转义时用)

如果你只是想原样匹配一段包含特殊字符的字符串:

String keyword = "a.b*";
String regex = Pattern.quote(keyword);

等价于把整个字符串当普通文本处理。


九、常见错误

❌ 错误:

".*".matches(".*"); // 永远 true

✅ 正确:

".*".matches("\\.\\*"); // true

十、速查表

需求 正则
匹配 . \\.
匹配 * \\*
匹配任意特殊字符 [^a-zA-Z0-9]
匹配标点符号 \\p{Punct}
包含特殊字符 .*[^a-zA-Z0-9].*
原样匹配字符串 Pattern.quote(str)

如果你能说一下具体要匹配哪种特殊字符(比如:密码校验、文件名、SQL、URL 等),我可以给你一个更精准的正则。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手