![](/img/trans.png)
[英]If statement not working despite having triggered the appropriate boolean value | Python
[英]python regex boolean statement not working
我的問題是,這個簡單的帶有布爾運算符的regex語句僅在按位運算符左側的第一個項目| |時給我想要的結果。 出現在句子中。 有人可以告訴我為什么它也不能在替代方案上工作嗎?
import re
b = 'this is a good day to die hard'
jeff = re.search('good night (.+)hard|good day (.+)hard', b)
print jeff.group(1)
您有兩組捕獲括號-因此,您有兩個編號的捕獲組。 如果第二個分支匹配,則group(1)
將被設置為None,而group(2)
將包含第二個分支所匹配的分支。
有幾種方法可以解決此問題。 例如,要寫成只有一組
jeff = re.search('good (?:day|night) (.+)hard', b)
第二個(...)
創建您需要使用.group(2)
訪問的第二個捕獲組。
您可以編寫一個正則表達式來捕獲day
或night
,而第二組將獲取所有內容,直到最后一個hard
為止。
import re
b = 'this is a good day to die hard'
jeff = re.search('good (day|night) (.+)', b)
if jeff:
print jeff.group(1)
print jeff.group(2)
演示的輸出:
day
to die hard
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.