導航:首頁 > 編程語言 > javapattern用法

javapattern用法

發布時間:2023-09-26 18:00:03

A. java中正則表達式如何使用比如判斷一個字元串是否滿足某種格式,給個詳細點的例子

按照你的要求給出的Java正則表達式的例子如下

//下面這個正則表達式匹配不能以.css,.html,.js,.json或者回.xml結尾的字元串答
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassCC{
publicstaticvoidmain(String[]args){
Strings="xxxx.js.jss";//目標字元串
Stringregex="((?!\.((css)|(html)|(js)|(json)|(xml))$).)+";//正則表達式
Patternp=Pattern.compile(regex);
Matcherm=p.matcher(s);
if(m.matches()){
System.out.println("匹配");
}else{
System.out.println("不匹配");
}
}
}

運行結果

匹配

B. java.util.regex中的pattern 和 matcher的用法

Pattern和Matcher Pattern 一個Pattern是一個正則表達式經編譯後的表現模式。 Matcher 一個Matcher對象是一個狀態機器,它依據Pattern對象做為匹配模式對字元串展開匹配檢查。 首先一個Pattern實例訂制了一個所用語法與PERL的類似的正則表達式經編譯後的模式,然後一個Matcher實例在這個給定的Pattern實例的模式控制下進行字元串的匹配工作。用法如下:

(字元串:"abc",正則表達式:"[a-z]{3}")
String類的方法:
booleanb="abc".matches("[a-z]{3}"
System.out.println(b);
Pattern類中的方法:
booleanb=Pattern.matches("[a-z]{3}","abc");
System.out.println(b);
Matcher類中的方法:
Patternp=Pattern.compile("[a-z]{3}");
Matcherm=p.matcher("acc");
booleanb=m.matches()
System.out.println(b);
得到的結果都為true。

C. java 正則表達式用法

先回答樓主的正則表達式吧

一個是建表語句格式如下 :
create【空格若干】table 【表名和其他信息】
正則表達式如下:create\s+table\s+.+

第二個是建索引語句格式如下 :
create【空格和字母若干】index【空格和字母下劃線等若干】
正則表達式如下:create[\sA-Za-z]+index[\sA-Za-z_]+

不過我認為樓主給定的限制不夠細,像【空格和字母下劃線等若干】這樣的說法比較模糊,上面的正則表達式可以正常匹配正確的語句,但是對於錯誤語句的限制不夠,還有進一步修改的餘地。

在JAVA中使用正則表達式時,應該import下面兩個類
import java.util.regex.Matcher;
import java.util.regex.Pattern;
另外"\"應該被替換成"\\"。

具體方法是:
String sql="create table test(id varchar(10) not null)"
String reg="create\\s+table\\s+.+";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(sql);
boolean b = m.matches();

得到的布爾值表示sql是否匹配正則表達式reg。

D. Java中怎麼簡單的使用正則表達式

一個正則表達式就是由普通字元(例如大小寫字母)以及特殊字元(稱為元字元)組成的文字模式。該模式描述在查找文字主體時待匹配的一個或多個字元串。正則表達式作為一個模板,將某個字元模式與所搜索的字元串進行匹配。

在最簡單的情況下,一個正則表達式看上去就是一個普通的查找串。例如,正則表達式"java"中沒有包含任何元字元,它可以匹配"java"和"javascript"等字元串,但是不能匹配"Java"。

正則表達式不僅能進行字元串的匹配,還能進行字元串的提取、替換。

示例代碼

String regEx = ".+/(.+)$";

String str = "D:/java/test.txt";

Pattern p = Pattern.compile(regEx);

Matcher m = p.matcher(str);

if (!m.find()){

System.out.println("文件路徑格式錯誤!");

return;

}

System.out.println(m.group(1));

運行結果:test.txt

正則表達式「.+/(.+)$」的含義就是:被匹配的字元串以任意字元序列開始,後邊緊跟著字元「/」,最後以任意字元序列結尾,「()」代表分組操作,這里就是把文件名做為分組,匹配完畢就可以通過Matcher 類的group方法取到所定義的分組了。需要注意的這里的分組的索引值是從1開始的,所以取第一個分組的方法是m.group(1)而不是m.group(0)。

E. 一個java小問題,Pattern類中的類方法(靜態方法)compile(String regex

編譯標志
效果

Pattern.CANON_EQ 當且僅當兩個字元的"正規分解(canonical decomposition)"都完全相同的情況下,才認定匹配。比如用了這個標志之後,表達式"a/u030A"會匹配"?"。默認情況下,不考慮"規范相等性(canonical equivalence)"。
Pattern.CASE_INSENSITIVE
(?i) 默認情況下,大小寫不明感的匹配只適用於US-ASCII字元集。這個標志能讓表達式忽略大小寫進行匹配。要想對Unicode字元進行大小不明感的匹配,只要將UNICODE_CASE與這個標志合起來就行了。
Pattern.COMMENTS
(?x) 在這種模式下,匹配時會忽略(正則表達式里的)空格字元(註:不是指表達式里的"//s",而是指表達式里的空格,tab,回車之類)。注釋從#開始,一直到這行結束。可以通過嵌入式的標志來啟用Unix行模式。
Pattern.DOTALL
(?s) 在這種模式下,表達式'.'可以匹配任意字元,包括表示一行的結束符。默認情況下,表達式'.'不匹配行的結束符。
Pattern.MULTILINE
(?m) 在這種模式下,'^'和'$'分別匹配一行的開始和結束。此外,'^'仍然匹配字元串的開始,'$'也匹配字元串的結束。默認情況下,這兩個表達式僅僅匹配字元串的開始和結束。
Pattern.UNICODE_CASE
(?u) 在這個模式下,如果你還啟用了CASE_INSENSITIVE標志,那麼它會對Unicode字元進行大小寫不明感的匹配。默認情況下,大小寫不明感的匹配只適用於US-ASCII字元集。
Pattern.UNIX_LINES
(?d) 在這個模式下,只有'/n'才被認作一行的中止,並且與'.','^',以及'$'進行匹配。

F. java正則表達式怎麼書寫

正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。

下面介紹具體的方法。

G. java pattern 如何匹配用逗號分隔的很復雜的表達式

按照你的要求匹配aa:bb,cc,dd:e簡化的Java正則表達式: (:?\w+,?)+

我給你個Java程序的例子,你可以參考回一下.

importjava.util.regex.Matcher;

importjava.util.regex.Pattern;

publicclassA{

publicstaticvoidmain(String[]args){

Strings="aa:bb,cc,dd:e";

Stringregex="(:?\w+,?)+";

Patternp=Pattern.compile(regex);

Matcherm=p.matcher(s);

if(m.matches()){

System.out.println(m.group());

}

}

}

運行結果答:

aa:bb,cc,dd:e

H. 想利用java里pattern功能處理對多個關鍵字的匹配查詢

Pattern pattern = Pattern.compile("切");
Matcher matcher = pattern.matcher(txt);
Matcher matcher2 = Pattern.compile("蒸").matcher(txt);
Matcher matcher3 = Pattern.compile("煮").matcher(txt);
Matcher matcher4 = Pattern.compile("燉").matcher(txt);
Matcher matcher5 = Pattern.compile("炸").matcher(txt);

boolean a = false;
boolean b = false;
boolean c = false;
boolean d = false;
boolean e = false;
while ((a = matcher.find())|| (b = matcher2.find())||(c = matcher3.find())||( d = matcher4.find())||(e = matcher5.find())) {
String msg ="";
if(a){
msg = ":" + matcher.group() + ":";
}else if(b){
msg = ":" + matcher2.group() + ":";
}else if(c){
msg = ":" + matcher3.group() + ":";
}else if(d){
msg = ":" + matcher4.group() + ":";
}else if(e){
msg = ":" + matcher5.group() + ":";
}
System.out.println(msg);
}

只不過這樣比較麻煩,你可以自己精煉下,我想知道,你提取關鍵字是不是只是想確定是否包含,如果是你可以不用這個方法

閱讀全文

與javapattern用法相關的資料

熱點內容
數學網路研修研究問題有哪些 瀏覽:677
stl文件怎麼列印 瀏覽:427
json格式變數寫法 瀏覽:68
廣州寄文件去吉林多少錢 瀏覽:254
蘋果APP文件夾創建 瀏覽:903
黃米是什麼app 瀏覽:417
word如何插入一個新文件夾 瀏覽:357
word文件夾前面有個符號 瀏覽:350
把word轉換成語音 瀏覽:220
linuxfile文件 瀏覽:454
如何用網路打普通電話 瀏覽:463
linux進程打開的文件 瀏覽:134
新購u盤無法儲存文件 瀏覽:553
5s要不要升級ios93 瀏覽:926
小米手機助手怎麼關閉自動升級 瀏覽:24
外星人能不能升級到win10系統盤 瀏覽:652
加入java信任站點 瀏覽:486
好用的急救知識app 瀏覽:524
什麼是網路適配器驅動文件名 瀏覽:717
吉林文件箱多少錢 瀏覽:113

友情鏈接