正則表達式 Regular Expression
正則表達式(Regular Expression,簡稱 regex 或 regexp)是一種強大且靈活的文字處理工具,用於匹配和操作文字。它們通常用於搜索、替換和驗證文字。以下是正則表達式的基本概念和一些常見的用法說明:
基本概念
字面字符(Literal Characters):匹配文本中的字符本身。
- 例如,正則表達式
abc會匹配字串 "abc"。
- 例如,正則表達式
元字符(Metacharacters):具有特殊含義的字符。
- 常見的元字符包括
.、^、$、*、+、?、{}、[]、|、()。
- 常見的元字符包括
字符類(Character Classes):用方括號
[]包圍的一組字符,表示其中的任意一個字符。- 例如,
[abc]匹配 "a"、"b" 或 "c"。
- 例如,
預定義字符類(Predefined Character Classes):
\d:匹配任何數字,等同於[0-9]。\D:匹配任何非數字字符。\w:匹配任何字母、數字或底線,等同於[a-zA-Z0-9_]。\W:匹配任何非單詞字符。\s:匹配任何空白字符(空格、製表符、換行符等)。\S:匹配任何非空白字符。
量詞(Quantifiers):指定前面的元素出現的次數。
*:匹配前面的元素零次或多次。+:匹配前面的元素一次或多次。?:匹配前面的元素零次或一次。{n}:匹配前面的元素恰好 n 次。{n,}:匹配前面的元素至少 n 次。{n,m}:匹配前面的元素至少 n 次且至多 m 次。
邊界匹配(Anchors):用於匹配字串的開始和結束。
^:匹配字串的開始。$:匹配字串的結束。
分組和捕獲(Grouping and Capturing):用圓括號
()將字符組合在一起。- 例如,
(abc)+匹配 "abc"、"abcabc"、"abcabcabc" 等。
- 例如,
替代(Alternation):使用管道符號
|來表示 "或"。- 例如,
abc|def匹配 "abc" 或 "def"。
- 例如,
常見應用
匹配電子郵件地址:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
匹配IP地址:
^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$
匹配日期(格式:YYYY-MM-DD):
^\d{4}-\d{2}-\d{2}$
匹配電話號碼(格式:123-456-7890 或 (123) 456-7890):
^(\(\d{3}\) |\d{3}-)\d{3}-\d{4}$
留言
張貼留言