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

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

如何在正則表達(dá)式中反向引用“內(nèi)部”選擇(())?

如何在正則表達(dá)式中反向引用“內(nèi)部”選擇(())?

猛跑小豬 2019-11-20 14:45:09
您如何在Regex中回引用內(nèi)部括號?樣本數(shù)據(jù)是一個(gè)產(chǎn)品價(jià)格清單,顯示了基于購買數(shù)量的不同價(jià)格跌幅。格式為quantityLow-quantityHigh:pricePer;倍數(shù)。我使用LINQPad構(gòu)造了此C#Regex表達(dá)式以分離各部分,這顯示了Regex數(shù)據(jù)分離的便捷可視化。在此示例中,存在“內(nèi)部”括號(選擇),從而創(chuàng)建了分層數(shù)據(jù)結(jié)構(gòu)。string mys = "1-4:2;5-9:1.89";Regex.Matches (mys, @"((\d+)[-|\+](\d*):(\d+\.?\d*);?)").Dump();  // Graphically show分解為(比賽就是一切。比賽中,有一個(gè)比賽和一個(gè)小組比賽。小組比賽中有幾個(gè)比賽。)MatchCollection(2個(gè)項(xiàng)目)團(tuán)體收藏(4件)CaptureCollection(1個(gè)項(xiàng)目)()組“ 1-4:2;”CaptureCollection(1個(gè)項(xiàng)目)()組“ 1”CaptureCollection(1項(xiàng)目)()組“ 4”CaptureCollection(1項(xiàng)目)()組“ 2”CaptureCollection(1項(xiàng)目)()匹配“ 1-4; 2;”團(tuán)體收藏(4件)CaptureCollection(1項(xiàng)目)()組“ 5-9:1.89”CaptureCollection(1項(xiàng)目)()組“ 5”CaptureCollection(1項(xiàng)目)()組“ 9”CaptureCollection(1項(xiàng)目)()組“ 1.89”CaptureCollection(1項(xiàng)目)()匹配“ 5-9:1.89”僅供參考:()括號組發(fā)現(xiàn)了可以由\ 1 .. \ 9引用的結(jié)果(我認(rèn)為)。\ d匹配一個(gè)數(shù)字。后面的+匹配一個(gè)或多個(gè)數(shù)字。*匹配零個(gè)或多個(gè)數(shù)字后。?之后說這個(gè)比賽是可選的。。匹配一個(gè)字符。\。在這種情況下,匹配句點(diǎn)或小數(shù)
查看完整描述

3 回答

?
哆啦的時(shí)光機(jī)

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

只要使用\1... \9(或者$1... $9在一些正則表達(dá)式實(shí)現(xiàn))就像你通常會(huì)。編號從左到右,基于開放括號的位置(因此,嵌套組的編號要大于嵌套在其中的組的編號)。


查看完整回答
反對 回復(fù) 2019-11-20
?
智慧大石

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

請注意,這是對Zim博士的評論的答復(fù):


“奇怪的是,兩種方法似乎都可以正常工作。我選擇了“ Regulator”,它至少說明了正則表達(dá)式是如何分解的。如果它具有設(shè)置實(shí)現(xiàn)的功能,那么我認(rèn)為我有業(yè)務(wù)?!?/p>


但是我的回答對于評論框來說太長了。


不,您不需要轉(zhuǎn)義加號(在這種情況下為連字符)。在字符類中,以下字符有特殊含義:],^和-。這三個(gè)字符是唯一可能需要轉(zhuǎn)義的字符(請注意,[不需要轉(zhuǎn)義!)。我說可能是因?yàn)樗Q于這些元字符出現(xiàn)的位置。該^只具有特殊的含義(作為否定指標(biāo))時(shí),放置在一個(gè)字符類的開始,在其他地方,它不需要逃逸,將只匹配文字^。一些例子說明:


[^a]   // special meaning: matches any character except 'a'

[a^]   // matches 'a' or '^'

[\^a]  // matches '^' or 'a'

當(dāng)連字符不在字符類的開頭或結(jié)尾時(shí),連字符僅具有特殊含義(作為范圍指示符)。例子:


[a-c]  // special meaning: matches 'a', 'b' or 'c'

[ac-]  // matches 'a', 'c' or '-'

[-ac]  // matches '-', 'a' or 'c'

[a\-c] // matches 'a', '-' or 'c'

毫無疑問,某些正則表達(dá)式實(shí)現(xiàn)可能與我剛剛發(fā)布的有所不同,但是大多數(shù)語言都將遵守這些規(guī)則(至少我使用過的所有語言?。?。正如您所注意到的,在字符類中過度轉(zhuǎn)義字符是安全的:這不會(huì)造成任何危害。兩個(gè)類[+]和[\+]將匹配文字+。恕我直言,第一個(gè)是首選,因?yàn)槲野l(fā)現(xiàn)一個(gè)正則表達(dá)式有太多的轉(zhuǎn)義字符難以閱讀。但是有些人會(huì)不同意我的看法,并發(fā)現(xiàn)通過使用轉(zhuǎn)義符(雖然不是必需的)可以更清楚地知道字面值+是匹配的,而不是貪婪的量詞。


希望這能說明問題。


查看完整回答
反對 回復(fù) 2019-11-20
  • 3 回答
  • 0 關(guān)注
  • 1115 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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