本篇內(nèi)容介紹了“Java單字符匹配和預(yù)定義字符的方法是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站服務(wù)項目包括河津網(wǎng)站建設(shè)、河津網(wǎng)站制作、河津網(wǎng)頁制作以及河津網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,河津網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到河津省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
現(xiàn)有一個字符串,需滿足如下要求:
[6, 18] 個字符
只能包含字母、數(shù)字、下劃線
需以字母開頭
如果字符串滿足上述要求,返回 true,否則返回 false
public static boolean validString(String s) { return s.matches("[a-zA-Z][a-zA-Z0-9_]{5,17}"); }
正則表達式用極簡的規(guī)則取代了復(fù)雜的驗證邏輯
Regex Expression
正則表達式是一種通用的技術(shù),適用于多種編程語言
1. [abc]
:字符串的某個位置(某一個字符)滿足 a、b、c 中的一個
某個位置
:該【單字符匹配】放的位置
public class TestDemo { public static void main(String[] args) { String regex = "[zgq]"; System.out.println("z".matches(regex)); // true System.out.println("g".matches(regex)); // true System.out.println("q".matches(regex)); // true System.out.println("zgq".matches(regex)); // false }}
public class TestDemo {
public static void main(String[] args) {
String regex = "26[abc]3q";
System.out.println("26a3q".matches(regex)); // true
System.out.println("26abc".matches(regex)); // false
System.out.println("26b3q".matches(regex)); // true
}}
2. [^abc]
:除了 a、b、c 之外的任意單個字符
public class TestDemo { public static void main(String[] args) { String regex = "[^cat]666"; System.out.println("c666".matches(regex)); // false System.out.println("a666".matches(regex)); // false System.out.println("t666".matches(regex)); // false System.out.println("bb666".matches(regex)); // false System.out.println("b666".matches(regex)); // true }}
public class TestDemo {
public static void main(String[] args) {
String regex1 = "[12345]666";
String regex2 = "[^1-5]666";
System.out.println("1666".matches(regex1)); // true
System.out.println("3666".matches(regex1)); // true
System.out.println("5666".matches(regex1)); // true
System.out.println("6666".matches(regex1)); // false
System.out.println("1666".matches(regex2)); // false
System.out.println("3666".matches(regex2)); // false
System.out.println("5666".matches(regex2)); // false
System.out.println("6666".matches(regex2)); // true
}}
3. [a-zA-z]
:匹配單個英文字母
public class TestDemo { public static void main(String[] args) { String regex = "[a-zA-Z]666"; System.out.println("6666".matches(regex)); // false System.out.println("b666".matches(regex)); // true }}
4. [a-d[1-6]]
:和 [a-d1-6]
一樣(并集)
public class TestDemo { public static void main(String[] args) { String regex1 = "[a-d[1-6]]"; String regex2 = "[a-d1-6]"; System.out.println("a".matches(regex1)); // true System.out.println("e".matches(regex1)); // false System.out.println("1".matches(regex1)); // true System.out.println("7".matches(regex1)); // false System.out.println("a".matches(regex2)); // true System.out.println("e".matches(regex2)); // false System.out.println("1".matches(regex2)); // true System.out.println("7".matches(regex2)); // false }}
5. [zgq&&[god]]
:交集
public class TestDemo { public static void main(String[] args) { String regex1 = "[zgq&&[god]]"; System.out.println("q".matches(regex1)); // false System.out.println("d".matches(regex1)); // false System.out.println("g".matches(regex1)); // true }}
6. [zgq&&[god]]
:取差集
public class TestDemo { public static void main(String[] args) { String regex1 = "[zgq&&[^god]]"; System.out.println("q".matches(regex1)); // true System.out.println("d".matches(regex1)); // false System.out.println("g".matches(regex1)); // false System.out.println("z".matches(regex1)); // true // 取差集, 從字母 a 到字母 z 中去除字母 b 和 d String regex2 = "[a-z&&[^bd]]"; System.out.println("d".matches(regex2)); // false System.out.println("a".matches(regex2)); // true }}
預(yù)定義字符匹配的仍然是單個字符
【.】:任意單個字符
【\d】:數(shù)字
【\D】:非數(shù)字
【\s】:空白
【\S】:非空白
【\w】:字母(英文字母、下劃線、數(shù)字)
【\W】:非英文字母
Java 中需以兩個【\】開頭表示預(yù)定義字符
public class TestDemo { public static void main(String[] args) { String r1 = "."; System.out.println("@".matches(r1)); // true System.out.println("慶".matches(r1)); // true System.out.println("I".matches(r1)); // true System.out.println(" ".matches(r1)); // true System.out.println(".".matches(r1)); // true }}
public class TestDemo {
public static void main(String[] args) {
// 匹配 java 文件
String r1 = ".\\.java";
System.out.println("a.java".matches(r1)); // true
System.out.println("xjava".matches(r1)); // false
System.out.println("5java".matches(r1)); // false
}}
public class TestDemo {
public static void main(String[] args) {
String r1 = "[abc]";
String r2 = "\\[abc\\]";
System.out.println("a".matches(r1)); // true
System.out.println("c".matches(r1)); // true
System.out.println("[abc]".matches(r1)); // false
System.out.println("a".matches(r2)); // false
System.out.println("c".matches(r2)); // false
System.out.println("[abc]".matches(r2)); // true
}}
“Java單字符匹配和預(yù)定義字符的方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!