為什麼Java的`String.matches()`無法匹配子字串,如何使用正規表示式正確匹配子字串?
了解String.matches() 中的差異
嘗試在Java 中使用正規表示式驗證字串時,您可能會遇到意外行為使用String.matches() 方法。雖然此方法的目的意味著匹配字串中的子字串,但它實際上嘗試將整個字串與提供的正規表示式進行匹配。
考慮以下程式碼片段:
String[] words = {"{apf","hum_","dkoe","12f"}; for(String s:words) { if(s.matches("[a-z]")) { System.out.println(s); } }
As您已經注意到,此程式碼無法列印預期的輸出(「dkoe」),因為它與所需的子字串不匹配,而是檢查整個字串是否僅包含小寫字母
解:使用Pattern 和Matcher
要解決此問題,您應該使用 Pattern 和 Matcher 類別以及 .find() 方法來確定如果正規表示式與輸入文字中的任何子字串相符。此方法涉及以下步驟:
- 透過編譯正規表示式來建立 Pattern 物件。
- 透過將模式套用至輸入字串來建立 Matcher 物件。
- 使用匹配器的.find()方法檢查模式是否匹配任何
示例如下:
Pattern p = Pattern.compile("[a-z]"); Matcher m = p.matcher(inputstring); if (m.find()) // match found
如果要確保輸入只包含小寫字母,可以使用下列正規表示式:^[a-z] $ 。不要忘記使用 .find() 而不是 .matches()。
以上是為什麼Java的`String.matches()`無法匹配子字串,如何使用正規表示式正確匹配子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

在使用IntelliJIDEAUltimate版本啟動Spring...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...
