正則表達式 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}$
留言
張貼留言