基于特定模式的 Python 正则表达式匹配

匹配字符串,如果只找到特定模式,否则整个字符串应该被拒绝。

例如这里是字符串,它应该匹配字符串 if only az,AZ,0-9, :(colon), .(point), ;(分号) ,- (连字符), "(双倒转), (, ) 逗号、[ ] 方括号、( ) 括号、\(反斜杠)存在于该字符串中 & 必须接受该字符串,如下所示,它必须接受 string1

string1 = "This is nandakishor's messAGe'\; [to]test(897185) "few(1 -\ 2)" regexs"

如果字符串中存在其他诸如 $、%、^、&、@、# 之类的内容,则必须拒绝整个字符串。如下所示,它必须拒绝 string2

string2 = "This is nandakishor's messAGe'\; [to]test(89718$#!&*^!5) "few(1 -\ 2)" regexs"


慕雪6442864
浏览 161回答 2
2回答

慕码人8056858

这是使用的一种方法 re.sub前任:import restring1 = '''This is nandakishor's messAGe'\; [to]test(897185) "few(1 -\ 2)" regexs'''string2 = '''This is nandakishor's messAGe'\; [to]test(89718$#!&*^!5) "few(1 -\ 2)" regexs'''def validateString(strVal):    return re.sub(r"[^a-zA-Z0-9:;\.,\-\",\[\]\(\)\\\s*\']", "", strVal) == strValprint(validateString(string1))print(validateString(string2))输出:TrueFalse

子衿沉夜

其它的办法:import restring1 = '''This is nandakishor's messAGe'\; [to]test(897185) "few(1 -\ 2)" regexs'''string2 = '''This is nandakishor's messAGe'\; [to]test(89718$#!&*^!5) "few(1 -\ 2)" regexs'''def validate_string(str_to_validate):    match_pattern1 = r'[a-zA-Z,():\[\];.\']'    match_pattern2 = '[$%^&@#]'    return re.search(match_pattern1, str_to_validate) and not re.search(match_pattern2, str_to_validate)print(validate_string(string1))print(validate_string(string2))输出:TrueFalse
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python