亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何用正則表達式同時搜索兩個可能的引號?

如何用正則表達式同時搜索兩個可能的引號?

千萬里不及你 2022-04-23 16:51:59
如果它們是一兩個詞長,我想提取引號中的詞。這適用于以下代碼。mysentences = ['Kids, you "tried" your "best" and you failed miserably. The "lesson" is, "never try."',                "Just because I don’t 'care' doesn’t mean I don’t understand."]quotation = []rx = r'"((?:\w+[ .]*){1,2})"' for sentence in mysentences:    quotation.append(re.findall(rx, sentence))print(quotation)但這并沒有讓我從第二句中得到“關心”,因為第二句用雙引號引起來。我可以通過以下方式獲得它r"'((?:\w+[ .]*){1,2})'"問題是,我怎樣才能加入條件?和rx = r'"((?:\w+[ .]*){1,2})"' or r"'((?:\w+[ .]*){1,2})'"它只會讓我得到第一個提到的條件。
查看完整描述

1 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

使用您當前的模式,您可以使用捕獲組和反向引用\1來匹配隨附的單引號或雙引號。

比賽現在將在第二個捕獲組中。

(['"])((?:\w+[ .]*){1,2})\1

正則表達式演示

請注意,重復字符類[ .]*也可能匹配例如never try... ....

如果要匹配 1 或 2 個單詞,其中末尾可以有一個可選點,則可以匹配 1+ 個單詞字符后跟一個可選組以匹配 1+ 個空格和 1+ 個單詞字符后跟一個可選點。

(['"])(\w+(?: +\w+)?\.?)\1

正則表達式演示

例如

import remysentences = ['Kids, you "tried" your "best" and you failed miserably. The "lesson" is, "never try."',               "Just because I don’t 'care' doesn’t mean I don’t understand."]quotation = []rx = r"(['\"])((?:\w+[ .]*){1,2})\1"for sentence in mysentences:    for m in  re.findall(rx, sentence):
        quotation.append(m[1])print(quotation)

結果

['tried', 'best', 'lesson', 'never try.', 'care']


查看完整回答
反對 回復 2022-04-23
  • 1 回答
  • 0 關注
  • 74 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號