亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
123
最近訪問板塊 發(fā)新帖
樓主: justu78
打印 上一主題 下一主題

求教高手正則表達式的擴展用法 [復(fù)制鏈接]

論壇徽章:
0
21 [報告]
發(fā)表于 2013-09-29 11:03 |只看該作者
本帖最后由 justu78 于 2013-09-29 11:13 編輯
mcshell 發(fā)表于 2013-09-28 23:21
其實和正則無關(guān)。。你的需求我看不懂。。。讓你舉出多一點的文本出來,,你就放了那幾個最簡單的例子 ,,讓 ...

我的天,我說了很多次了啊,難道你看不懂我的正則表達式嗎?我的所有意圖都在里面了。。。。還看不懂,那我再說一次:
1)一個字符串,可長,可短,可以含有任何東西!
2)我需要從中獲取合法的等式,等式規(guī)則如下:
    a)等式必須要有等號=,這沒疑問吧?
    b)等號=的左邊是以字母數(shù)字下劃線定義的東西,該玩意和等號之間可以有任意空格,等號右邊也可以有任意空格,所以 \w+\s*=\s* 必須有。。!,其他統(tǒng)統(tǒng)錯誤
    c) 等號=的右邊是一個數(shù)字,我這里只以整數(shù)為例子(實際中我有另外一個變量,變量的內(nèi)容也是一個正則,來表達對各種整數(shù),小數(shù),浮點,科學(xué)計數(shù)。。的匹配),這個數(shù)字的兩邊可以有,也可以沒有定界符號,所以裸數(shù)字也合法,比如 =\s*\d+
   d)數(shù)字兩邊的定界符有三種:括號(左括號,右括號),單引號,雙引號。允許使用引號的原因是我最后用于分析計算這個合法等式的軟件可以識別這種定義。
     數(shù)字兩邊的括號必須方向匹配,沒疑問吧  象 (5( 這樣的玩意我想地球上沒有任何語言軟件會認為表示數(shù)字3。除了括號的方向匹配之外,個數(shù)也必須匹配,因為 ((3))和 (3)都是合法的數(shù)字3。
    數(shù)字兩邊的單引號或者雙引號也必須匹配, 但是數(shù)目只能是0或者1。
     所以我使用了('|"|\(*)?,但是我這后來考慮,這種模式不是很好閱讀,用(['"]?|\(*)可讀性更好。
   e)數(shù)字和左右兩邊的定界符也可以有任意的空格,因為(    3     )也是合法的。所以有('|"|\(*)?\s*\d+\s*
   f)最后,比較麻煩的是如何設(shè)定右邊定界符的模式,因為右邊定界符的模式需要根據(jù)左邊定界符模式的匹配結(jié)果來確定,所以我使用了正則表達式的擴展(??{if($2){if($2=~m#\(#){'\)'x length $2}else{"$2"}}})),這里$2是什么意思大家應(yīng)該都清楚,是左邊定界符的匹配結(jié)果,然后判斷,如果左邊定界符發(fā)現(xiàn)了左括號,就生成同樣長度的右括號模式,否則直接用$2的值作為右邊定界符模式
   g)最后,因為原始字符串會很長,可能還有很多合法的等式以及其他一些不合法的,或者亂七八糟的東西,合法等式后面可以有另一個合法等式,也可以有不合法的或者奇怪的其他東西,他們之間必須至少有一個空格。另外合法等式也可能正好處于字符串的結(jié)尾,而且字符串的結(jié)尾也可以包含雙斜杠\\做為下一個字符串的連續(xù)符號,所以最后我使用(\s+|\s*(\\\\)?\s*$)
以上我解釋了我的正則的含義,希望你能看懂了。我舉的代碼是非常簡單的一段,只是用于該正則測試而已。
我有另外的方案解決以上的問題,只是不能在一個正則里處理,需要對原字符串做若干次預(yù)處理。不過我希望如果能一個正則搞定是最好,這是我來這里咨詢的原因。謝謝。

論壇徽章:
0
22 [報告]
發(fā)表于 2013-09-29 11:08 |只看該作者
onepublic 發(fā)表于 2013-09-29 11:01
回復(fù) 14# justu78

如果1和2之間有空格,那就是合法的,否則非法。因為合法的數(shù)字內(nèi)部之間不能有空格。
sinian126 該用戶已被刪除
23 [報告]
發(fā)表于 2013-09-29 17:33 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
0
24 [報告]
發(fā)表于 2013-09-29 21:38 |只看該作者
sinian126 發(fā)表于 2013-09-29 17:33
這種匹配 都用不著perl 下個notepad++就能解決,可視化的幾個正則就完成了回復(fù) 6# justu78

問題是這只是我的程序很小的一個功能,我不是只處理某個字符串就完了的哦,,還有別的很多工作要做,分析字符串只是必要的一步而已.
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP