簡體   English   中英

檢查字符串是否包含正則表達式的模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM