java如何使用正則表達(dá)式限制特殊字符的個(gè)數(shù)
使用正則表達(dá)式限制特殊字符的個(gè)數(shù)
package com.l.dubbo.service; import java.util.HashSet; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ThreadPoolTest { public static boolean check1(String context, String regEx) { Pattern pattern = Pattern.compile(regEx); Matcher matcher = pattern.matcher(context); String ss = ""; String s2 = ""; boolean flag = true; int count = 0; //符合正則表達(dá)式的子段為特殊符號(hào) //比較子段是否重復(fù) 若重復(fù)則特殊符號(hào)種類不止一種 while (matcher.find()) { if (count == 0) { ss = matcher.group(); // System.out.println(ss); } else { s2 = matcher.group(); // System.out.println(s2); } if (!(ss).equals(s2) && count > 0) { flag = false; } count++; } // System.out.println(count); return flag; } public static boolean check2(String context, String regEx) { Pattern pattern = Pattern.compile(regEx); Matcher matcher = pattern.matcher(context); boolean flag = false; //利用set的元素不能重復(fù),來(lái)檢查是否只有一種特殊符號(hào) Set<String> set = new HashSet<String>(); while (matcher.find()) { set.add(matcher.group()); } if (set.size() == 1) { flag = true; } return flag; } public static void main(String[] args) { //s1中只包含'!‘一種特殊字符 String s1 = "dasd!a22!!!!"; //s2中包含'!‘和'@‘兩種特殊字符 String s2 = "dasd!a22@!!!"; String regEx = "((?=[\\x21-\\x7e]+)[^A-Za-z0-9])"; System.out.println(check1(s1, regEx)); System.out.println(check1(s2, regEx)); System.out.println(check2(s1, regEx)); System.out.println(check2(s2, regEx)); } }
輸出結(jié)果
true
false
true
false
Process finished with exit code 0
java判斷限定字符的正則
判斷答案是否是ABCD的正則
public class Test { public static void main(String[] args){ Pattern pattern = Pattern.compile("^[A-D]+$"); System.out.println(pattern.matcher("A").find()); System.out.println(pattern.matcher("E").find()); } }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(62)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-08-08Java后臺(tái)防止客戶端重復(fù)請(qǐng)求、提交表單實(shí)現(xiàn)原理
這篇文章主要介紹了Java后臺(tái)防止客戶端重復(fù)請(qǐng)求、提交表單實(shí)現(xiàn)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12MyBatis之foreach標(biāo)簽的用法及多種循環(huán)問(wèn)題
這篇文章主要介紹了MyBatis之foreach標(biāo)簽的用法及多種循環(huán)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11java 下執(zhí)行mysql 批量插入的幾種方法及用時(shí)
java 下執(zhí)行mysql 批量插入的幾種方法及用時(shí),1000次插入方法的比較。2013-04-04Netty4之如何實(shí)現(xiàn)HTTP請(qǐng)求、響應(yīng)
這篇文章主要介紹了Netty4之如何實(shí)現(xiàn)HTTP請(qǐng)求、響應(yīng)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Java8 LocalDateTime極簡(jiǎn)時(shí)間日期操作小結(jié)
這篇文章主要介紹了Java8-LocalDateTime極簡(jiǎn)時(shí)間日期操作整理,通過(guò)實(shí)例代碼給大家介紹了java8 LocalDateTime 格式化問(wèn)題,需要的朋友可以參考下2020-04-04詳解通過(guò)maven運(yùn)行項(xiàng)目的兩種方式
這篇文章主要介紹了通過(guò)maven運(yùn)行項(xiàng)目的兩種方式,給大家提到了通過(guò)tomcat的方式來(lái)啟動(dòng)maven項(xiàng)目的方法,通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12