Python 中的字元類操作是什麼?
字元類操作是使用 Python 中的正則表示式匹配字串中特定型別字元的一種方法。
在正則表示式中,“字元類”是指要匹配的一組字元。可以使用方括號 `[]` 建立字元類。例如,如果要匹配任何母音,可以使用字元類 `[aeiou]`。這將匹配任何單個字元,這些字元是 'a'、'e'、'i'、'o' 或 'u' 中的任何一個。
示例
此程式碼將使用正則表示式 `[aeiou]` 搜尋 `text` 字串中的所有母音,並返回找到的所有母音的列表。
如您所見,輸出是字串中所有母音的列表,按其出現的順序排列。
import re text = "The quick brown fox jumps over the lazy dog." vowels = re.findall("[aeiou]", text) print(vowels)
輸出
['e', 'u', 'i', 'o', 'o', 'u', 'e', 'o', 'e', 'a', 'o']
示例
可以在字元類內部使用插入符號 `^` 字元來匹配不在該類中的任何字元。例如,字元類 `[^aeiou]` 將匹配不是母音的任何字元。以下是一個示例
此程式碼將使用正則表示式 `[^aeiou ]` 搜尋 `text` 字串中的所有子音(即任何不是母音或空格的字元),並返回找到的所有子音的列表。輸出將如下所示
如您所見,輸出是字串中所有子音的列表,按其出現的順序排列。
import re text = "The quick brown fox jumps over the lazy dog." consonants = re.findall("[^aeiou ]", text) print(consonants)
輸出
['T', 'h', 'q', 'c', 'k', 'b', 'r', 'w', 'n', 'f', 'x', 'j', 'm', 'p', 's', 'v', 'r', 't', 'h', 'l', 'z', 'y', 'd', 'g', '.']
示例
可以使用連字元 `-` 字元在字元類內部指定字元範圍。例如,字元類 `[A-Z]` 將匹配從 A 到 Z 的任何大寫字母。以下是一個示例
此程式碼將使用正則表示式 `[A-Z]` 搜尋 `text` 字串中的所有大寫字母,並返回找到的所有大寫字母的列表。
如您所見,輸出是一個僅包含大寫字母 'T' 的列表,因為它是字串中唯一的大寫字母。
import re text = "The quick brown fox jumps over the lazy dog." capital_letters = re.findall("[A-Z]", text) print(capital_letters)
輸出
['T']
示例
可以組合字元類以匹配更復雜的模式。例如,正則表示式 `[\w\d]` 將匹配任何字母數字字元。以下是一個示例
此程式碼將使用正則表示式 `[\w\d]` 搜尋 `text` 字串中的所有字母數字字元(即任何字母或數字),並返回找到的所有字母數字字元的列表。
如您所見,輸出是字串中所有字母數字字元的列表,按其出現的順序排列。
import re text = "The price is $2.99." alphanumeric = re.findall("[\w\d]", text) print(alphanumeric)
輸出
['T', 'h', 'e', 'p', 'r', 'i', 'c', 'e', 'i', 's', '2', '9', '9']
示例
可以使用反斜槓 `\` 字元跳脫字元類內部的特殊字元。例如,正則表示式 $'[\backslash[\backslash]]'$ 將匹配任何方括號字元(`[` 或 `]`)。以下是一個示例
此程式碼將使用正則表示式 $'[\backslash[\backslash]]'$ 搜尋 `text` 字串中的所有方括號字元,並返回找到的所有方括號字元的列表。輸出將如下所示
如您所見,輸出是一個包含字串中兩個方括號字元的列表,因為它們是唯一與正則表示式 $'[\backslash[\backslash]]'$ 匹配的字元。
import re text = "This is a [test]." brackets = re.findall("[\[\]]", text) print(brackets)
輸出
['[', ']']
這些只是如何在 Python 中使用字元類操作的一些示例。透過組合字元類和其他正則表示式操作,您幾乎可以匹配文字字串中想到的任何模式。