[英]java (jdk 1.6) regular expression
我想檢查給定字符串中是否存在任何特殊字符。 我嘗試了以下模式,但沒有奏效。 因此,如果有任何有效的答案將有所幫助。
Pattern p = Pattern.compile("[\\*&]");
Matcher m = p.matcher("a*a&a");
boolean b = m.matches();
if (b) {
System.out.println("Found");
} else {
System.out.println("Not Found");
}
它在javascript中工作。 即[\\ *&]。
代替:
boolean b = m.matches();
采用:
boolean b = m.find();
因為Matcher#matches
僅在匹配從開始到結束的完整輸入時才返回true。
matches()
使用^
和$
(分別為行首和行尾matches()
自動錨定正則表達式。 因此,你的正則表達式被轉換為^[\\\\*&]$
,它只匹配字符串"*"
和"&"
。
您正在尋找: .*[\\\\*&].*
附注:當嵌套在類中時,您不需要轉義*
: [*&]
表現為[\\\\*&]
。
你的不匹配,因為它只是尋找*
和&
查看它contains
一種簡單方法是在開頭和結尾contains
帶有.*
正則表達式,例如:
Pattern p = Pattern.compile(".*[\\*&].*");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.