第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

替換字符串中的問題

替換字符串中的問題

ibeautiful 2021-04-26 08:09:10
我有一個(gè)替換字符串的問題:我想將所有外觀從2h / 2h / 2 heure / 2heure / 2 heures / 2heures更改為#hour。我試過了:text = "I should leave the house at 16h45 but I am late and I should not be arriving between 2 h or 3h or maybe 4heures"hour = re.compile(r'[0-9]+\s?(h|heures?)([0-9]+)?')replaces = hour.sub('#hour', text)print(replaces)輸出:我應(yīng)該在#hour離開家,但是我遲到了,我不應(yīng)該在#hour或#hour或#houreures之間到達(dá)良好的輸出:我應(yīng)該在#hour離開家,但是我遲到了,我不應(yīng)該在#hour或#hour或#hour之間到達(dá)我該如何解決#houreures這個(gè)問題?
查看完整描述

3 回答

?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

h替代匹配hheuresheures?替代甚至沒有測(cè)試。交換替代方案可以解決問題,但是最好使用可選的非捕獲組(請(qǐng)參見下面的解決方案)。

建議不要在模式中的捕獲括號(hào)中刪除它們(或者,如果要使用替換,則將其轉(zhuǎn)換為非捕獲組)。

此外,該([0-9]+)?模式可以簡(jiǎn)化為[0-9]*。

您可以使用

[0-9]+\s?h(?:eures?)?[0-9]*

正則表達(dá)式演示

細(xì)節(jié)

  • [0-9]+ -一個(gè)或多個(gè)數(shù)字

  • \s? -1或0個(gè)空格

  • h-h一封信

  • (?:eures?)?-與1個(gè)或0個(gè)匹配項(xiàng)發(fā)生eure或匹配的可選非捕獲組eures

  • [0-9]* -0或更多數(shù)字。

參見Python演示

import re

text = "I should leave the house at 16h45 but I am late and I should not be arriving between 2 h or 3h or maybe 4heures"

hour = re.compile(r'[0-9]+\s?h(?:eures?)?[0-9]*')

replaces = hour.sub('#hour', text)

print(replaces)

# => I should leave the house at #hour but I am late and I should not be arriving between #hour or #hour or maybe #hour



查看完整回答
反對(duì) 回復(fù) 2021-05-11
?
收到一只叮咚

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊

更改的順序heuresh括號(hào),像這里面:

[0-9]+\s?(heures?|h)([0-9]+)? 應(yīng)該管用。

在情況下(h|heures?),你是說,如果h沒有找到,然后看是否heures存在。無論何時(shí)heures存在,事物h都會(huì)始終存在(它的第一個(gè)字符heures)。因此,您需要更改順序。您應(yīng)該先搜索heures,如果不存在,搜索h。因此,替換 (h|heures?)為即可(heures?|h)解決問題。


查看完整回答
反對(duì) 回復(fù) 2021-05-11
?
婷婷同學(xué)_

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊

您需要切換交替,因?yàn)榈谝徊糠种械膆首先被匹配。

例如4heures,您的正則表達(dá)式匹配一個(gè)或多個(gè)數(shù)字\d+。然后在交替中(h|heures?)它可以匹配hfrom heures。在替換匹配的4h將被替換#hour導(dǎo)致#houreures

[0-9]+\s?(heures?|h)([0-9]+)?

import re


text = "I should leave the house at 16h45 but I am late and I should not be arriving between 2 h or 3h or maybe 4heures"

hour = re.compile(r'[0-9]+\s?(heures?|h)([0-9]+)?')

replaces = hour.sub('#hour', text)

print(replaces)


查看完整回答
反對(duì) 回復(fù) 2021-05-11
  • 3 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)