目錄
一、正則表達式概念
二、八元素
1、普通字符:
2、元字符:
3、通配符 .:
4、字符類 []:
5、量詞:
6、錨點 ^ 和 $:
7、捕獲組 ():
8、轉義字符 \:
三、日常使用的正則表達式
1、郵箱
2、電話(美國)
3、URL
4、日期(YYYY-MM-DD)
5、IP地址
6、用戶名(僅包含字母和數字,且長度為6-12字符)
7、密碼(包含大小寫字母、數字、特殊字符,且長度為8-16個字符)
總結
我的其他博客
一、正則表達式概念
正則表達式(Regular Expression,簡稱Regex或RegExp)是一種用于描述字符串模式的表達式。它提供了一種靈活的方式來進行字符串的匹配、搜索、替換和提取操作。正則表達式是由普通字符和元字符(metacharacters)組成的字符串,這些元字符具有特殊的意義,用于定義匹配規則。
以下是正則表達式的一些基本概念和元素:
-
普通字符: 表達式中的普通字符(例如字母、數字、符號)表示它們自身,只有它們自身與輸入字符串中的字符匹配。
-
元字符: 元字符是具有特殊含義的字符,它們用于構建匹配模式。例如,
*
、+
、.
、^
、$
等都是元字符。 -
通配符:
.
(點)是一個通配符,匹配任意單個字符,除了換行符。 -
字符類: 方括號
[]
用于定義一個字符類,匹配其中任意一個字符。例如,[aeiou]
可以匹配任何一個元音字母。 -
量詞: 量詞用于指定匹配模式中字符的數量。例如,
*
表示零個或多個,+
表示一個或多個,?
表示零個或一個。 -
錨點:
^
(脫字符)用于匹配字符串的開頭,$
用于匹配字符串的結尾。 -
捕獲組: 使用圓括號
()
可以創建捕獲組,用于分組并記住匹配的子表達式。捕獲組允許你提取匹配的部分。 -
轉義字符: 反斜杠
\
用于轉義元字符,使其失去特殊含義,匹配字符本身。例如,\.
匹配實際的點字符。
正則表達式的語法因編程語言而異,但基本的概念和元素在大多數語言中是相似的。許多編程語言(如Python、JavaScript、Java)都提供了內置的正則表達式支持。正則表達式是一個強大而靈活的工具,但有時也可能變得復雜,特別是對于復雜的匹配模式。
二、八元素
1、普通字符:
普通字符是正則表達式中的字母、數字、符號等,它們表示它們自身。例如,正則表達式中的 a
將精確匹配字符串中的字母 "a"。
2、元字符:
元字符是具有特殊含義的字符,用于構建匹配模式。一些常見的元字符包括:
.
:匹配任意單個字符(除了換行符)。*
:匹配前一個字符的零個或多個實例。+
:匹配前一個字符的一個或多個實例。?
:匹配前一個字符的零個或一個實例。^
:匹配字符串的開始。$
:匹配字符串的結束。[]
:定義字符類,匹配其中任意一個字符。()
:創建捕獲組。
3、通配符 .
:
點號 .
是一個通配符,用于匹配任意單個字符,除了換行符。例如,正則表達式 a.c
可以匹配 "abc"、"adc"、"a1c" 等。
4、字符類 []
:
字符類用于定義一個字符集合,匹配其中的任意一個字符。例如,正則表達式 [aeiou]
匹配任何一個元音字母。
5、量詞:
- 量詞用于指定字符或字符類的重復次數。
*
:匹配前一個字符的零個或多個實例。+
:匹配前一個字符的一個或多個實例。?
:匹配前一個字符的零個或一個實例。
- 例如,正則表達式
\d+
可以匹配一個或多個數字。
6、錨點 ^
和 $
:
^
用于匹配字符串的開始,$
用于匹配字符串的結束。例如,正則表達式 ^start
可以匹配以 "start" 開始的字符串。
7、捕獲組 ()
:
捕獲組用于創建子表達式,可以對其進行分組,以便后續引用或提取。例如,正則表達式 (\d+)-(\w+)
可以匹配像 "123-abc" 這樣的字符串,并將數字和字母分別放入兩個捕獲組中。
8、轉義字符 \
:
反斜杠 \
用于轉義元字符,使其失去特殊含義,匹配字符本身。例如,\.
可以匹配實際的點字符。
三、日常使用的正則表達式
1、郵箱
- 正則表達式:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
- 用途:用于驗證電子郵件地址的格式。
2、電話(美國)
- 正則表達式:
^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$
- 用途:用于驗證美國的電話號碼格式,包括可選的括號、分隔符。
3、URL
- 正則表達式:
^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$
- 用途:用于驗證URL的格式。
4、日期(YYYY-MM-DD)
- 正則表達式:
^\d{4}-\d{2}-\d{2}$
- 用途:用于驗證日期的格式,例如:2023-12-07。
5、IP地址
- 正則表達式:
^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$
- 用途:用于驗證IPv4地址的格式。
6、用戶名(僅包含字母和數字,且長度為6-12字符)
- 正則表達式:
^[a-zA-Z0-9]{6,12}$
- 用途:用于驗證用戶名的格式,只包含字母和數字,長度為6到12個字符。
7、密碼(包含大小寫字母、數字、特殊字符,且長度為8-16個字符)
- 正則表達式:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,16}$
- 用途:用于驗證密碼的格式,包含大小寫字母、數字和特殊字符,長度為8到16個字符。
總結
正則表達式是一項強大而靈活的技能,它在許多編程語言和文本編輯器中都有廣泛的應用。熟練地使用正則表達式可以大大提高文本處理和字符串操作的效率
我的其他博客
HTTP與HTTTPS的區別-CSDN博客
?
什么情況下會產生StackOverflowError(棧溢出)和OutOfMemoryError(堆溢出)怎么排查-CSDN博客
談談我對HashMap擴容機制的理解及底層實現-CSDN博客?