![](/img/trans.png)
[英]Python Regex matching choice between “\*” (literal Asterisk char) OR “\s” (Space)
[英]Python regex match literal asterisk
給出以下字符串:
s = 'abcdefg*'
我如何匹配它或任何其他僅由小寫字母組成的字符串,並且可選地以星號結尾? 我認為以下內容可行,但它沒有:
re.match(r"^[a-z]\*+$", s)
它給出None
而不是匹配對象。
我如何匹配它或任何其他僅由小寫字母組成的字符串,並且可選地以星號結尾?
以下將這樣做:
re.match(r"^[a-z]+[*]?$", s)
^
匹配字符串的開頭。 [az]+
匹配一個或多個小寫字母。 [*]?
匹配零或一個星號。 $
匹配字符串的結尾。 您的原始正則表達式恰好匹配一個小寫字符,后跟一個或多個星號。
\\*?
表示0或1的星號:
re.match(r"^[a-z]+\*?$", s)
re.match(r"^[a-z]+\*?$", s)
[az]+
匹配小寫字母的序列, \\*?
匹配可選的文字*
chatacter。
嘗試
re.match(r"^[a-z]*\*?$", s)
這意味着“包含零個或多個小寫字符的字符串(因此是第一個星號),后跟零或一個星號(轉義星號后面的問號)。
你的正則表達式意味着“正好是一個小寫字符后跟一個或多個星號”。
您忘記了[az]匹配后的+,表示您還想要一個或多個(現在它只匹配一個)。
re.match(r"^[a-z]+\*+$", s)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.