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

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

如何使用正則表達(dá)式匹配任何字符串的最后兩個字符是前兩個字符的相反順序

如何使用正則表達(dá)式匹配任何字符串的最后兩個字符是前兩個字符的相反順序

忽然笑 2021-11-30 10:38:23
例如,正則表達(dá)式應(yīng)該匹配“aa”、“aba”、“abba”和“asddsa”,而不是“abab”。
查看完整描述

2 回答

?
BIG陽

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個贊

這應(yīng)該有效:

^(?=(.)(.)).*\2\1$

請注意,我對前兩個字符使用了前瞻,而不是簡單地匹配它們。這是因?yàn)槟€想匹配短于 4 個字符的字符串。所以我們不想這么早匹配前兩個字符。

我將前兩個字符捕獲到第 1 組和第 2 組中,然后匹配 ( .*)之間的所有字符,然后匹配第 2 組中匹配的所有字符,然后匹配第 1 組 ( ) 中匹配的所有字符\1\2。

爪哇:

input.matches("^(?=(.)(.)).*\\2\\1$")

Python:

re.match(r"^(?=(.)(.)).*\2\1$", input)


查看完整回答
反對 回復(fù) 2021-11-30
?
慕桂英3389331

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

我們可以在這里使用正則表達(dá)式,但老實(shí)說,手動對兩組字母進(jìn)行兩次比較可能更容易:


String input = "BonzaioB";

int n = input.length();

if (input.charAt(0) == input.charAt(n-1) &&

    input.charAt(1) == input.charAt(n-2)) {

    System.out.println("MATCH");

}

else {

    System.out.println("NO MATCH");

}

或者在 Python 中:


input = "BonzaioB"

n = len(input)

if (input[0] == input[n-1] and input[1] == input[n-2]) :

    print("MATCH")

else:

    print("NO MATCH")

順便說一句,這可能會優(yōu)于基于正則表達(dá)式的解決方案,因?yàn)樗恍枰獟呙枵麄€字符串,也不需要額外的存儲空間。


查看完整回答
反對 回復(fù) 2021-11-30
  • 2 回答
  • 0 關(guān)注
  • 333 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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