問題:
public class question
}
輸出false. why ??????
解析: [^d] 總是要匹配至少乙個字元。
解決辦法:
負向零寬斷言。只匹配乙個位置,並不消費任何字元。
零寬度負**先行斷言 (?!exp) ,斷言此位置的後面不能匹配表示式exp.
例子中,可以修改為
pattern p=pattern.compile("abc(?!d)");
錯誤解決方式**段:
// * 重複0-n次 ? 重複0-1次
// 此時,[^d]匹配模式,可以不出現。
// 當regex="abcd"時,將輸出"true"。不滿足
pattern p=pattern.compile("abc[^d]*?");
Java正規表示式
正規表示式結構簡介 字元 x 字元 x 反斜槓 0n 十進位制數 0 n 7 0nn 十進位制數 0nn 0 n 7 0mnn 十進位制數 0mnn 0 m 3,0 n 7 xhh 十六進製制數 0xhh uhhhh 十六進製制數 0xhhhh t 製表符 u0009 n 換行符 u000a r 回...
Java正規表示式
方便查詢的東西 基本語法 轉義字元 in d d d 數字0 9 多少到多少 d 非數字 0 9 非 w 單詞字元 a za z0 9 a3 w 非單詞字元 w s 空白 如 n t 0 1次 1 n次 0 n次 必須是n次 大於等於n次 n demo 中文 u0391 uffe5 英文 a za ...
Java正規表示式
舉例說明 the 開頭一定要有 the 字串 of despair 結尾一定要有 of despair 的字串 那麼,abc 就是要求以abc開頭和以abc結尾的字串,實際上是只有abc匹配。notice 匹配包含notice的字串。你可以看見如果你沒有用我們提到的兩個字元 最後乙個例子 就是說 模...