簡體   English   中英

java(jdk 1.6)正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM