[英]Regular Expression in Python strings
我想使用正則表達式驗證滿足以下三個條件的字符串
為了滿足上述條件,我創建了如下格式
^[^\W_][a-z\.,_-]+
這種模式可以正常工作到第二個字符。 但是,如果第 3 個和后續字符包含任何特殊字符或大寫字符,則此模式將失敗。
例子:
Pattern 適用於字符串 S@yanthan,但不適用於 Sa@yanthan。 即使第三個和后續字符包含任何特殊字符或大寫字符,我也希望該模式能夠通過。 你能建議我這種模式哪里出錯了嗎? 下面是代碼片段。
import re
a = "Sayanthan"
exp = re.search("^[^\W_][a-z\.,_-]+",a)
if exp:
print(True)
else:
print(False)
您嘗試的模式^[^\W_][az.,_-]+
以[^\W_]
開頭,它將匹配除下划線以外的任何單詞字符,因此它也可以是大寫字符。
然后[az.,_-]+
將匹配任何列出的 1+ 次,這意味着字符串也可以以逗號結尾。
查看列出的條件,您可以使用:
^[a-z](?:[a-z.,_-]*[a-z])?\Z
^
字符串開頭[az]
匹配小寫字符 az(?:
非捕獲組
[az.,_-]*[az]
匹配 0+ 個以 az 結尾的列表)?
關閉組並使其成為可選\Z
字符串結束
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.