主頁 > 知識庫 > 代替正則——HyperScriptExpression聯(lián)合開發(fā)倡議公告

代替正則——HyperScriptExpression聯(lián)合開發(fā)倡議公告

熱門標(biāo)簽:荊州智能電銷機(jī)器人 提高電話機(jī)器人接通率 平?jīng)龈叩碌貓D標(biāo)注商戶要收費(fèi)嗎 大學(xué)校門地圖標(biāo)注 銷售電銷機(jī)器人詐騙 福建微碼電話機(jī)器人 廣西智能外呼系統(tǒng)多少錢 地圖標(biāo)注與公司業(yè)務(wù)關(guān)系 外呼系統(tǒng)api對接
正則的難寫和復(fù)雜語法使得出學(xué)者們難以接觸。為了解決這個難題,本人決定請諸位和本人一起開發(fā)HyperScriptExpression(以后簡稱HSE)。HSE全部使用標(biāo)記(Marked)形式,語法規(guī)整,例如:
正則\d{2}-\d{5}的等價HSE為:rep=2>digit>/rep>-rep=5>digit>/rep>。
正則(.*)>.*\/\1>的等價HSE為lt;rem(>*>any>/*>)>gt;*>any>/*>lt;/rem=1>gt;。
正則^Chapter [1-9][0-9]{0,1}的等價HSE為:@start>Chapter in>1-9/in>rep=0,1>in>0-9/in>/rep>。
正則(\w)+[@]{1}((\w)+[\.]){1,3}(\w)+的等價HSE為:+>word>/+>rep1>@/rep>rep=1,3>word+>./rep>word+>
HSE 語法注釋
> 轉(zhuǎn)移符號。用lt;代替。>用gt;代替
@start> 匹配輸入字符串的開始位置。如果設(shè)置了 HSE 對象的 Multiline 屬性,@start> 也匹配crlf>或cr>之后的位置。
@over> 匹配輸入字符串的結(jié)束位置。如果設(shè)置了 HSE 對象的 Multiline 屬性,@over> 也匹配crlf>或cr>之前的位置。
*>/*> 匹配前面的子表達(dá)式零次或多次。例如,z*>o/*> 能匹配 "z" 以及 "zoo"。等價于least=0>/least>。
+>/+> 匹配前面的子表達(dá)式一次或多次。例如,'z+>o/+>' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。等價于least=1>/least>。
sel>/sel> 匹配前面的子表達(dá)式零次或一次。例如,"dosel>es/sel>" 可以匹配 "do" 或 "does" 中的"do" 。 等價于rep=0,1>/rep>。
rep=n>/rep> n 是一個非負(fù)整數(shù)。匹配確定的 n 次。例如,'rep=2>o/rep>' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的兩個 o。
least=n>/least> n 是一個非負(fù)整數(shù)。至少匹配n 次。例如,'least=2>o/least>' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。
rep=m,n>/rep> m 和 n 均為非負(fù)整數(shù),其中n >= m。最少匹配 m 次且最多匹配 n 次。例如,"rep=1,3>o/rep>" 將匹配 "fooooood" 中的前三個 o。請注意在逗號和兩個數(shù)之間不能有空格。
NG屬性 當(dāng)該字符緊跟在任何一個其他限制符后面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字符串,而默認(rèn)的貪婪模式則盡可能多的匹配所搜索的字符串。例如,對于字符串 "oooo",'+ NG>o/+>' 將匹配單個 "o",而 '+>o/+>' 將匹配所有 'o'。
anything>或any> 匹配除 "crlf>" 之外的任何單個字符。要匹配包括 'crlf>' 在內(nèi)的任何字符,請使用象 'in>any>crlf>/in>' 的模式。
rem(>p/)>或
rem>p/rem>
匹配 p 并獲取這一匹配。所獲取的匹配可以從產(chǎn)生的 Matches 集合得到,使用 SubMatches 集合,$0…$9 屬性。
(>pattern/)> 匹配 pattern 但不獲取匹配結(jié)果,也就是說這是一個非獲取匹配,不進(jìn)行存儲供以后使用。這在使用 "或" 字符 (|) 來組合一個模式的各個部分是很有用。例如, 'industr(>yor>ies/)> 就是一個比 'industry|industries' 更簡略的表達(dá)式。
eq>pattern/eq> 正向預(yù)查,在任何匹配 pattern 的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如, 'Windows eq>95or>98or>NTor>2000/eq>' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。預(yù)查不消耗字符,也就是說,在一個匹配發(fā)生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預(yù)查的字符之后開始。
neq>pattern/neq> 負(fù)向預(yù)查,在任何不匹配 pattern 的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以后使用。
xor>y 匹配 x 或 y。例如,'zor>food' 能匹配 "z" 或 "food"。'(>zor>f/)>ood' 則匹配 "zood" 或 "food"。
in>/in> 字符集合。匹配所包含的任意一個字符。例如,'in>abc/in>' 可以匹配 "plain" 中的 'a'。
nin>/nin> 負(fù)值字符集合。匹配未包含的任意字符。例如,'nin>abc/nin>' 可以匹配 "plain" 中的'p'。
in>a-z/in> 字符范圍。匹配指定范圍內(nèi)的任意字符。
nin>a-z/nin> 負(fù)值字符范圍。匹配任何不在指定范圍內(nèi)的任意字符。
border>/border> 匹配一個單詞邊界,也就是指單詞和空格間的位置。
nborder>/nborder> 匹配非單詞邊界。border>的否定。
control=x> 匹配由 x 指明的控制字符。例如,control=M> 匹配一個 Control-M 或回車符。x 的值必須為 A-Z 或 a-z 之一。否則,將 control> 視為 nothing> 字符。
digit> 匹配一個數(shù)字字符??梢允褂胐igit+>,digit*>,digit?>格式。下同。
ndigit> 匹配一個非數(shù)字字符。
page> 匹配一個換頁符。
crlf> 匹配一個換行符。
cr> 匹配一個回車符。
blank> 匹配任何空白字符,包括空格、制表符、換頁符等等。
nblank> 匹配任何非空白字符。
tab> 匹配一個制表符。
vtab> 匹配一個垂直制表符。
word> 匹配包括下劃線的任何單詞字符。
nword> 匹配任何非單詞字符。
hex=n> 匹配 n,其中 n 為十六進(jìn)制轉(zhuǎn)義值。十六進(jìn)制轉(zhuǎn)義值必須為確定的兩個數(shù)字長。
call=num> 匹配 num,其中 num 是一個正整數(shù)。對所獲取的匹配的引用。例如,'rem>any>/rem>call=1>' 匹配兩個連續(xù)的相同字符。
oct=n> 標(biāo)識一個八進(jìn)制轉(zhuǎn)義值。
unicode=n> 匹配 n,其中 n 是一個用四個十六進(jìn)制數(shù)字表示的 Unicode 字符。例如, \u00A9 匹配版權(quán)符號 (©)。
nothing>或者
nil>
匹配空字符。用于選擇,比如nothing>or>aor>bor>cor>d代表a,b,c,d或者沒有(空字符)。
total> 強(qiáng)制性全部字符串匹配。比如total>HSin>DEF/in>可匹配HSD但不可以匹配HSDB中的HSD。

標(biāo)簽:婁底 海南 黔東 內(nèi)江 德陽 衡陽 樂山 邯鄲

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《代替正則——HyperScriptExpression聯(lián)合開發(fā)倡議公告》,本文關(guān)鍵詞  代替,正則,HyperScriptExpression,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《代替正則——HyperScriptExpression聯(lián)合開發(fā)倡議公告》相關(guān)的同類信息!
  • 本頁收集關(guān)于代替正則——HyperScriptExpression聯(lián)合開發(fā)倡議公告的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章