範例 |
正規表示式範例 |
數字範圍 |
浮點數 |
電子郵件地址 |
IP 位址 |
有效日期 |
數字日期轉換為文字 |
信用卡號碼 |
比對完整行 |
刪除重複行 |
程式設計 |
兩個相鄰的字詞 |
陷阱 |
災難性回溯 |
過多重複 |
拒絕服務 |
讓所有內容都變成選用 |
重複擷取群組 |
混合 Unicode 和 8 位元 |
本網站的更多資訊 |
簡介 |
正規表示式快速入門 |
正規表示式教學 |
取代字串教學 |
應用程式和語言 |
正規表示式範例 |
正規表示式參考 |
取代字串參考 |
書籍評論 |
可列印 PDF |
關於本網站 |
RSS 饋送和部落格 |
以下,您將找到許多範例模式,供您使用並調整為自己的目的。製作每個正規表示式的關鍵技術都有說明,並附上連結至 教學 中對應的頁面,其中會詳細說明這些概念和技術。
如果您是正規表示式的新手,可以看看這些範例,了解正規表示式有哪些功能。正規表示式非常強大。學習正規表示式需要一些時間。但當您使用正規表示式在 EditPad Pro 或 PowerGREP 中自動執行搜尋或編輯工作,或是使用 各種語言 編寫腳本或應用程式時,您將很快就能收回這段時間。
RegexBuddy 提供最快速的方法來了解正規表示式。RegexBuddy 會分析任何正規表示式,並以清晰易懂的詳細大綱呈現給您。大綱會連結到 RegexBuddy 的正規表示式教學(與您在本網站上找到的教學相同),您隨時可以按一下一下取得深入資訊。
喔,而且您絕對不需要是程式設計師才能利用正規表示式!
<TAG\b[^>]*>(.*?)</TAG> 比對特定 HTML 標籤的開啟和關閉配對。標籤之間的任何內容都會擷取到第一個 反向參考 中。正規表示式中的問號會讓星號 變為非貪婪,以確保它在第一個關閉標籤之前停止,而不是像貪婪星號一樣在最後一個關閉標籤之前停止。這個正規表示式無法正確比對巢狀標籤,例如 <TAG>one<TAG>two</TAG>one</TAG>。
<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1> 將配對任何 HTML 標籤的開啟和關閉配對。請務必關閉大小寫敏感性。此解決方案的關鍵在於使用 反向參照 \1 在 regex 中。標籤之間的任何內容都會擷取到第二個反向參照中。此解決方案也不會配對嵌套在自身中的標籤。
您可以透過執行 regex 搜尋和取代,輕鬆修剪字串或文字檔中各行開頭和結尾不必要的空白。搜尋 ^[ \t]+ 並以空白取代,以刪除前導空白(空格和 tab)。搜尋 [ \t]+$ 以修剪尾隨空白。透過將正規表示式 合併 為 ^[ \t]+|[ \t]+$ 來執行這兩個動作。您可以將 [ \t](配對空格或 tab)擴充為 [ \t\r\n] 的 字元類別,如果您也想要移除換行。或者,您可以改用 簡寫 \s。
數字範圍。由於正規表示式使用文字而非數字,因此配對特定的數字範圍需要特別小心。
配對浮點數。也說明了在正規表示式中將所有內容設為選配的常見錯誤。
配對電子郵件地址。對於什麼是配對電子郵件地址的適當 regex,存在許多爭議。這是一個完美的範例,顯示您需要確切知道您嘗試配對的內容(以及不配對的內容),並且 regex 的複雜性和準確性之間總是存在權衡。
比對有效日期。一個正規表示式,比對 31-12-1999,但不會比對 31-13-1999。
尋找或驗證信用卡號碼。驗證在訂單表單中輸入的信用卡號碼。在文件中尋找信用卡號碼,以進行安全性稽核。
比對完整行。顯示如何比對文字檔案中的完整行,而不仅仅是滿足特定需求的行部分。此外,還顯示如何比對特定正規表示式不比對的行。
移除重複行或項目。說明如何簡單但靈活地使用擷取括弧或反向參照。
處理原始碼的正規表示式範例。如何比對常見的程式語言語法,例如註解、字串、數字等。
兩個單字相鄰。顯示如何使用正規表示式模擬某些工具具有的「相鄰」運算子。
災難性回溯。如果正規表示式似乎需要花費很長時間,或只是讓應用程式當機,它很可能已經發生災難性回溯。解決方案通常是更具體地說明要比對的內容,因此引擎必須嘗試的比對次數不會呈指數上升。
讓所有內容都可選。如果正規表示式中的所有部分都是可選的,它將比對任何位置的零長度字串。正規表示式需要表達不同的部分根據存在的部分而可選的事實。
重複擷取群組與擷取重複群組。重複擷取群組只會擷取群組的最後一個反覆。如果你想要擷取所有反覆,請擷取重複群組。
混合 Unicode 和 8 位元字元碼。在 Unicode 引擎和主旨字串中使用 8 位元字元碼,例如 \x80,可能會產生意外的結果。
| 快速入門 | 教學 | 工具和語言 | 範例 | 參考 | 書籍評論 |
| 正規表示式範例 | 數字範圍 | 浮點數 | 電子郵件地址 | IP 位址 | 有效日期 | 數字日期轉換為文字 | 信用卡號碼 | 比對完整行 | 刪除重複行 | 程式設計 | 兩個相近的字詞 |
| 災難性的回溯 | 過多重複 | 阻斷服務 | 讓所有東西變成可選 | 重複擷取群組 | 混合 Unicode 和 8 位元 |
頁面網址:https://regular-expressions.dev.org.tw/examples.html
頁面最後更新時間:2019 年 12 月 12 日
網站最後更新時間:2024 年 3 月 15 日
版權所有 © 2003-2024 Jan Goyvaerts。保留所有權利。