Python - 檢查字串是否與正規表示式清單匹配

WBOY
發布: 2023-09-04 08:49:08
轉載
1417 人瀏覽過

Python - 检查字符串是否与正则表达式列表匹配

正規表示式也稱為正規表示式,它是形成搜尋模式的字元序列。它是用於模式匹配和操作字串的強大工具之一。在 python 中,我們有一個名為 re 的模組,它有助於形成一個正規表示式。

正規表示式模式由普通字元(例如字母、數字)和稱為元字元的特殊字元組成。元字元具有特殊意義,允許我們定義複雜的搜尋模式。以下是Python正規表示式中一些常用的元字元。

  • 。 (點) - 符合除換行符之外的任何單一字元。

  • ^(插入符號)− 符合字串的開頭。

  • $(美元) - 符合字串的結尾。

  • *(星號) - 符合前面的模式零次或多次出現。

  • (加號) - 符合前面模式的一次或多次出現。

  • ? (問號) - 符合前面的模式出現零次或一次。

  • [](方括號) - 定義字元類別並符合方括號內的任何單一字元。

  • ()(括號) - 將模式分組並捕獲匹配的子字串。

  • \(反斜線) - 轉義元字元或引入特殊序列。

其他附加正規表示式支援表示常見模式的特殊序列,如下所述。

  • \d - 符合任何相當於 [0-9] 的數字。

  • \w - 符合任何相當於 [a-zA-Z0-9_] 的字母數字字元。

  • \s - 符合任何空白字元。

  • \b - 符合單字邊界。

  • \A - 符合類似 ^ 的字串開頭,但它不考慮多行模式。

  • \Z - 符合類似 $ 的字串結尾,但它不考慮多行模式。

Python 中有多種方法來檢查字串是否與正規表示式 (regex) 清單相符。讓我們一一看看每種方法。

使用 re 模組

Python 中的「re」模組提供了使用正規表示式的函數。我們可以使用re 模組中的're.match()' 函數來檢查字串是否與正規表示式模式匹配,並檢查正規表示式模式列表,我們可以迭代在列表上並為每個模式呼叫're.match()'

範例

在此範例中,re.match() 函數用於檢查字串是否與 regex_list 中的每個模式相符。如果找到匹配,它將列印該模式。

import re
string = "Hello, Welcome to Tutorialspoint!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
for pattern in regex_list:
   if re.match(pattern, string):
      print(f"String matches pattern: {pattern}")
登入後複製

輸出

String matches pattern: Hello
登入後複製

使用列表理解和 re.search()

尋找匹配模式的另一種方法是使用列表理解和 re.search() 函數。透過使用列表理解而不迭代正規表示式列表,我們可以建立一個包含匹配模式的新列表。

範例

在這個範例中,我們使用清單推導式和程式碼行[pattern for pattern in regex_list if re.search(pattern, string)] 來建立一個新清單matching_patterns 包含regex_list 中與字串相符的正規表示式模式。然後我們使用 re.search() 函數來尋找字串中模式的第一次出現。

import re
string = "Hello,happy learning!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
matching_patterns = [pattern for pattern in regex_list if re.search(pattern, string)]
print("Matching patterns:", matching_patterns)
登入後複製

輸出

Matching patterns: ['Hello']
登入後複製

使用any()函數和re.search()

any()函數是Python中可用的函數之一,可用來檢查正規表示式清單序列中的任何元素是否為true。我們可以將其與 re.search() 結合起來檢查是否有任何正規表示式模式與字串相符。

範例

在此範例中,any() 函數用於迭代正規表示式清單的元素,並使用re.search() 檢查是否有任何模式與字串相符。 。如果找到匹配,它將列印“字串匹配至少一個模式”。

import re
string = "Hello, Welcome to Tutorialspoint!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
if any(re.search(pattern, string) for pattern in regex_list):
   print("String matches at least one pattern")
登入後複製

輸出

String matches at least one pattern
登入後複製

以上是Python - 檢查字串是否與正規表示式清單匹配的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!