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

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

正則表達式匹配任何重復超過10次的字符

正則表達式匹配任何重復超過10次的字符

慕無忌1623718 2019-07-30 17:37:43
正則表達式匹配任何重復超過10次的字符我正在尋找一個簡單的正則表達式,以匹配重復超過10次左右的相同字符。例如,如果我有一個散落著水平線的文檔:=================================================它將匹配=字符行,因為它重復超過10次。請注意,我希望這適用于任何角色。
查看完整描述

3 回答

?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

你需要的正則表達式是/(.)\1{9,}/。


測試:


#!perl

use warnings;

use strict;

my $regex = qr/(.)\1{9,}/;

print "NO" if "abcdefghijklmno" =~ $regex;

print "YES" if "------------------------" =~ $regex;

print "YES" if "========================" =~ $regex;

這里\1稱為反向引用。它引用.括號之間的點所捕獲的內容  (.),然后是{9,}九個或更多相同字符的請求。因此,這匹配任何單個字符中的十個或更多。


雖然上面的測試腳本是在Perl中,但這是非常標準的正則表達式語法,應該適用于任何語言。在某些變體中,您可能需要使用更多的反斜杠,例如Emacs會讓您\(.\)\1\{9,\}在這里寫。


如果整個字符串應包含9個或更多相同的字符,請在模式周圍添加錨點:


my $regex = qr/^(.)\1{9,}$/;


查看完整回答
反對 回復 2019-07-30
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

在Python中你可以使用 (.)\1{9,}

  • (。)從一個char(任何字符)創建組

  • \ 1 {9,}匹配第一組中的九個或更多字符

例:

txt = """1. aaaaaaaaaaaaaaa
2. bb
3. cccccccccccccccccccc
4. dd
5. eeeeeeeeeeee"""rx = re.compile(r'(.)\1{9,}')lines = txt.split('\n')for line in lines:
    rxx = rx.search(line)
    if rxx:
        print line

輸出:

1. aaaaaaaaaaaaaaa3. cccccccccccccccccccc5. eeeeeeeeeeee


查看完整回答
反對 回復 2019-07-30
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

.匹配任何角色。與已經提到的花括號一起使用:

$: cat > test====================================oo
ooooooooooooooooooooooo


$: grep -E '(.)\1{10}' test============================ooooooooooooooooooooooo


查看完整回答
反對 回復 2019-07-30
  • 3 回答
  • 0 關注
  • 1607 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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