[英]Check if string contains pattern for regular expression
在我的python函數中,如果提供的參數包含表示正則表達式的字符串(例如r'^\\D{2}$'
),我想采取一些措施。 如何檢查該字符串是否具有這樣的正則表達式模式?
也許嘗試編譯字符串:
def is_regex(s):
try:
re.compile(s)
return True
except:
return False
您需要re
模塊。
import re
s = <some string>
p = <regex pattern>
if re.search(p, s):
# do something
嘗試這個 ,
import re
pattern=r'^\D{2}$'
string="Your String here"
import re
try:
re.compile(pattern)
is_valid = True
except re.error:
is_valid = False
if is_valid:
matchObj = re.search(pattern, string, flags=0)
if matchObj :
#do something
else:
#do something
嘗試這個:
import re
match_regex = re.search(r'^\D{2}$','somestring').group()
# do something with your matched string
有一個棘手的方法可以做到這一點。 您可以嘗試將模式與其自身作為字符串進行匹配,如果它返回None,則可以將其視為regexp。
import re
def is_regex_pattern(pattern: str) -> bool:
"""Returns False if the pattern is normal string"""
return not re.match(pattern, pattern)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.