3 回答

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
你需要的正則表達(dá)式是/(.)\1{9,}/。
測(cè)試:
#!perl
use warnings;
use strict;
my $regex = qr/(.)\1{9,}/;
print "NO" if "abcdefghijklmno" =~ $regex;
print "YES" if "------------------------" =~ $regex;
print "YES" if "========================" =~ $regex;
這里\1稱為反向引用。它引用.括號(hào)之間的點(diǎn)所捕獲的內(nèi)容 (.),然后是{9,}九個(gè)或更多相同字符的請(qǐng)求。因此,這匹配任何單個(gè)字符中的十個(gè)或更多。
雖然上面的測(cè)試腳本是在Perl中,但這是非常標(biāo)準(zhǔn)的正則表達(dá)式語(yǔ)法,應(yīng)該適用于任何語(yǔ)言。在某些變體中,您可能需要使用更多的反斜杠,例如Emacs會(huì)讓您\(.\)\1\{9,\}在這里寫(xiě)。
如果整個(gè)字符串應(yīng)包含9個(gè)或更多相同的字符,請(qǐng)?jiān)谀J街車砑渝^點(diǎn):
my $regex = qr/^(.)\1{9,}$/;

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
在Python中你可以使用 (.)\1{9,}
(。)從一個(gè)char(任何字符)創(chuàng)建組
\ 1 {9,}匹配第一組中的九個(gè)或更多字符
例:
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

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超3個(gè)贊
.
匹配任何角色。與已經(jīng)提到的花括號(hào)一起使用:
$: cat > test====================================oo ooooooooooooooooooooooo $: grep -E '(.)\1{10}' test============================ooooooooooooooooooooooo
- 3 回答
- 0 關(guān)注
- 1604 瀏覽
添加回答
舉報(bào)