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

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

折疊并捕獲單個(gè)正則表達(dá)式中的重復(fù)模式

折疊并捕獲單個(gè)正則表達(dá)式中的重復(fù)模式

折疊并捕獲單個(gè)正則表達(dá)式中的重復(fù)模式我不斷遇到需要從字符串中捕獲大量令牌的情況,經(jīng)過無數(shù)次的嘗試后,我找不到簡(jiǎn)化過程的方法。所以我們說文本是:?jiǎn)?dòng):測(cè)試 - 測(cè)試 - LOREM-存有-SIR-doloret - 等 - 等 - 的東西:結(jié)束這個(gè)例子里面有8個(gè)項(xiàng)目,但是說它可能有3到10個(gè)項(xiàng)目。我理想上喜歡這樣的東西:start:(?:(\w+)-?){3,10}:end漂亮而干凈但是它只能抓住最后一場(chǎng)比賽??催@里我通常在簡(jiǎn)單的情況下使用這樣的東西:start:(\w+)-(\w+)-(\w+)-?(\w+)?-?(\w+)?-?(\w+)?-?(\w+)?-?(\w+)?-?(\w+)?-?(\w+)?:end由于最大10限制,3組強(qiáng)制要求和另外7組可選,但這看起來并不“好”,如果最大限制為100且匹配更復(fù)雜,編寫和跟蹤將是一件痛苦的事。演示到目前為止我能做的最好:start:(\w+)-((?1))-((?1))-?((?1))?-?((?1))?-?((?1))?-?((?1))?-?((?1))?:end特別是如果比賽很復(fù)雜但仍然很長(zhǎng)。演示有人設(shè)法讓它作為一個(gè)沒有編程的1正則表達(dá)式解決方案工作?我最感興趣的是如何在PCRE中完成,但其他口味也可以。更新:目的是match 0通過RegEx單獨(dú)驗(yàn)證匹配并捕獲單個(gè)令牌,而不受任何OS /軟件/編程語言限制更新2(賞金):在@nhahtdh的幫助下,我使用以下方法訪問下面的RegExp \G:(?:start:(?=(?:[\w]+(?:-|(?=:end))){3,10}:end)|(?!^)\G-)([\w]+)演示甚至更短,但無需重復(fù)代碼即可進(jìn)行描述我也對(duì)ECMA的味道感興趣,因?yàn)樗恢С謀G想知道是否有另一種方式,特別是不使用/g修飾符。
查看完整描述

3 回答

?
一只斗牛犬

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

雖然理論上可以編寫單個(gè)表達(dá)式,但首先匹配外部邊界然后在內(nèi)部部分執(zhí)行拆分更加實(shí)用。

在ECMAScript中,我會(huì)這樣寫:

'start:test-test-lorem-ipsum-sir-doloret-etc-etc-something:end'
    .match(/^start:([\w-]+):end$/)[1] // match the inner part
    .split('-') // split inner part (this could be a split regex as well)

在PHP中:

$txt = 'start:test-test-lorem-ipsum-sir-doloret-etc-etc-something:end';if (preg_match('/^start:([\w-]+):end$/', $txt, $matches)) {
    print_r(explode('-', $matches[1]));}


查看完整回答
反對(duì) 回復(fù) 2019-08-13
  • 3 回答
  • 0 關(guān)注
  • 693 瀏覽

添加回答

舉報(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)