正則表達式中常見的貪婪詞有哪些舉例詳解
更新時間:2025年07月02日 08:56:57 作者:叩叮ING
正則表達式一般趨向于最大長度匹配,就是貪婪模式,下面這篇文章主要介紹了正則表達式中常見的貪婪詞有哪些舉例的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
1. *
- 含義:匹配前面的元素零次或者多次。
- 示例:對于正則表達式
a*
,在字符串"aaaa"
中,它會匹配整個"aaaa"
,因為它會盡可能多地匹配a
字符。 - 代碼示例(Python):
import re text = "aaaa" pattern = re.compile(r'a*') result = pattern.search(text) print(result.group()) # 輸出: aaaa
2. +
- 含義:匹配前面的元素一次或者多次。
- 示例:正則表達式
a+
在字符串"aaaa"
中,同樣會匹配整個"aaaa"
,不過它至少要匹配一次a
字符。 - 代碼示例(Python):
import re text = "aaaa" pattern = re.compile(r'a+') result = pattern.search(text) print(result.group()) # 輸出: aaaa
3. ?
- 含義:匹配前面的元素零次或者一次。
- 示例:正則表達式
colou?r
可以匹配"color"
和"colour"
,u?
表示u
這個字符可以出現(xiàn)零次或者一次。 - 代碼示例(Python):
import re text1 = "color" text2 = "colour" pattern = re.compile(r'colou?r') result1 = pattern.search(text1) result2 = pattern.search(text2) print(result1.group()) # 輸出: color print(result2.group()) # 輸出: colour
4. {n,}
- 含義:匹配前面的元素至少
n
次。 - 示例:正則表達式
a{2,}
在字符串"aaaa"
中,會匹配整個"aaaa"
,因為它要求a
至少出現(xiàn) 2 次。 - 代碼示例(Python):
import re text = "aaaa" pattern = re.compile(r'a{2,}') result = pattern.search(text) print(result.group()) # 輸出: aaaa
5. {n,m}
- 含義:匹配前面的元素至少
n
次,但不超過m
次。 - 示例:正則表達式
a{2,3}
在字符串"aaaa"
中,會匹配前三個a
,即"aaa"
,因為它盡量在 2 到 3 次的范圍內進行最大匹配。 - 代碼示例(Python):
import re text = "aaaa" pattern = re.compile(r'a{2,3}') result = pattern.search(text) print(result.group()) # 輸出: aaa
貪婪字符會盡可能多地去匹配符合條件的字符,直到無法再匹配為止,因此會導致回溯問題,因此在實際應用中,應該避免使用貪婪字符。
如果想讓貪婪字符變?yōu)榉秦澙纺J?,只需在其后加?? 即可,如:*?
、+?
、??
、{n,}?
、{n,m}?,
此模式將會盡可能少的去匹配字符,但是可能無法達到預期結果,大家酌情選擇。
總結
到此這篇關于正則表達式中常見的貪婪詞有哪些舉例的文章就介紹到這了,更多相關正則表達式貪婪詞內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!