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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
樓主: send_linux
打印 上一主題 下一主題

正則表達(dá)進(jìn)階大討論!歡迎參與討論。ǐ@獎(jiǎng)名單已公布-2012-7-6) [復(fù)制鏈接]

論壇徽章:
7
雙子座
日期:2013-09-09 15:55:31CU大牛徽章
日期:2013-09-18 15:22:06CU大牛徽章
日期:2013-09-18 15:22:20CU大;照
日期:2013-09-18 15:22:26CU大;照
日期:2013-09-18 15:22:31CU大;照
日期:2013-09-18 15:22:37CU大;照
日期:2013-09-18 15:22:46
61 [報(bào)告]
發(fā)表于 2012-06-04 18:54 |只看該作者
本帖最后由 milujite 于 2012-06-04 18:55 編輯

本期話題:
1、在你的日常工作中會(huì)使用正則表達(dá)式解決什么樣的問(wèn)題?
2、正則表達(dá)式的用法在各個(gè)語(yǔ)言、腳本里面略有不同,你有什么學(xué)習(xí)經(jīng)驗(yàn)可以分享給初學(xué)者?

1、文本過(guò)濾,我常用的文本編輯器是NOTEPAD++和VIM,NOTEPAD++的正則跟VIM還是沒(méi)得比的。如經(jīng)常要過(guò)濾掉配置文件里#開(kāi)頭的,就":g/^#/d",查找些匹配字段之類的。
2、日志分析過(guò)濾,形成報(bào)表,以前維護(hù)過(guò)MAIL服務(wù)器,郵件頭是包含各種各樣信息的,因此要獲取這些信息用于統(tǒng)計(jì),還得靠正則。學(xué)習(xí)了PERL和PYTHON,實(shí)現(xiàn)同樣的功能,PERL和Python的正則匹配比shell腳本快好多,特別是大量日志要獲取某些值用于分析。PERL的正則引擎?zhèn)人覺(jué)得是幾門常用腳本語(yǔ)言里最效率的,雖然現(xiàn)在很多人都已經(jīng)用PYTHON去取代PERL了。PCRE語(yǔ)法和GREP之類的正則語(yǔ)法還是有一定區(qū)別的,經(jīng)常會(huì)用混亂了。所以用GREP之類的干脆直接加-e。

論壇徽章:
0
62 [報(bào)告]
發(fā)表于 2012-06-04 18:57 |只看該作者
send_linux 發(fā)表于 2012-05-31 21:59
謝謝參與哈,對(duì)啊,做為運(yùn)維管理工作中,需要大量用到的腳本啥的,正則表達(dá)式是必不可少的吧,呵呵



正則是必不可少的!

論壇徽章:
3
寅虎
日期:2013-11-27 07:53:29申猴
日期:2014-09-12 09:24:152015年迎新春徽章
日期:2015-03-04 09:48:31
63 [報(bào)告]
發(fā)表于 2012-06-04 20:12 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
2
午馬
日期:2015-01-27 11:22:392015年辭舊歲徽章
日期:2015-03-03 16:54:15
64 [報(bào)告]
發(fā)表于 2012-06-05 00:56 |只看該作者
回復(fù) 1# send_linux


在你的日常工作中會(huì)使用正則表達(dá)式解決什么樣的問(wèn)題?


     Regex主要是用來(lái) 寫(xiě)腳本來(lái)完成工作中的細(xì)節(jié)問(wèn)題, 另外 還用來(lái)看DB/OS的日志,過(guò)濾日志來(lái)得到需要的結(jié)果。


正則表達(dá)式的用法在各個(gè)語(yǔ)言、腳本里面略有不同,你有什么學(xué)習(xí)經(jīng)驗(yàn)可以分享給初學(xué)者


用多了就有感覺(jué)的, 講一些小細(xì)節(jié)吧~~

1。 要適當(dāng)了解DFA/NFA不同引擎的工具,對(duì)于Regex的解析不同~~這個(gè)在之前那本 精通正則表達(dá)式里面講了不少
     DFA的格式不支持回溯, NFA在特定情況下會(huì)比較慢。當(dāng)然現(xiàn)在不少是改進(jìn)過(guò)的NFA~~

2。 要注意不同的平臺(tái)上 工具的支持度不一樣。
    比如grep/egrep命令, 在目前的Linux平臺(tái)上支持得比較新, 但像在Solaris10上面,仍不支持grep -e(solaris11 已經(jīng)支持), 需要 egrep來(lái)替代

    而像tr命令,在解釋下面一條命令時(shí)候則會(huì)出現(xiàn)不同平臺(tái)上不同答案(對(duì)于括號(hào)的解析不同)
    $ echo  '[]' | tr '[a-z]' A

    在一些平臺(tái)上,不支持'+'匹配,那么匹配空字符需要
    [[:space:]][[:space:]]* 來(lái)替代 [[:space:]]+

    下面這段小代碼,則在Linux/Solaris上面的運(yùn)行性能完全不一樣。在solaris設(shè)備上取隨機(jī)數(shù)再調(diào)head,當(dāng)行數(shù)較大時(shí)性能明顯變差。
    $expr 'NAME'`</dev/urandom tr -dc A-Za-z0-9_#$ | head -c29 |tr '[a-z]' '[A-Z]'`
    所以這段代碼我移植到Solaris上面的時(shí)候,攺了較多
    并且由于solaris10上面不支持 tr -c命令, 又不得不用sed/strings來(lái)完成,由于下面又不能保證結(jié)果長(zhǎng)度, 不得不做幾次paste之后再截字符串
    $expr 'NAME'`sed 's/[^a-zA-Z0-9_$#]//g' /dev/urandom | strings -n 5 | head -1`


3。 一些常用的Regex可以記住~~         
    比如sed刪掉只有空字符的行
    $ sed '/^[[:space:]]*$/d'

4。 記得特殊字符或控制字符轉(zhuǎn)義
    比如上面說(shuō)的[[:space:]]+ 在sed里面,需要把加號(hào)轉(zhuǎn)義成 [[:space:]]\+
    還有sed里面的范圍控制變量()需要轉(zhuǎn)義,但實(shí)際匹配的"("不需要轉(zhuǎn)義
    sed 's/\([[:alpha:]]\)(\([[:alpha:]]\)/\1 \2/g'

5。 一個(gè)腳本只做一件事。
    特別是在shell腳本中, 不要嘗試一下寫(xiě)很長(zhǎng)的匹配串,對(duì)于復(fù)雜事務(wù),完全可以用多次簡(jiǎn)單處理來(lái)做到的, 提高可讀性和可調(diào)試性能。
    一下子寫(xiě)一串特別長(zhǎng)的Regex匹配串并不一定明智,除非是在已經(jīng)充分驗(yàn)證或者成熟的大程序方案中,為了性能提升而考慮減少調(diào)用次數(shù)。

6。 區(qū)別貪婪/非貪婪模式(Greediness/Laziness)
    我的想法是,在條件判斷,比如判斷子字符串是否存在的時(shí)候,可以用非貪婪模式來(lái)解決。 而不用考慮有1次以上或者多種可能的匹配度。
    在perl等支持兩種模式的語(yǔ)言中,用得好,肯定是會(huì)對(duì)運(yùn)行性能提升有幫助的~~~


論壇徽章:
5
亥豬
日期:2013-10-15 13:41:04CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34申猴
日期:2013-10-28 10:55:45辰龍
日期:2013-10-31 13:29:29丑牛
日期:2014-02-14 11:25:54
65 [報(bào)告]
發(fā)表于 2012-06-05 11:37 |只看該作者
回復(fù) 55# chenjintao_ii


    pcre~~~~~

論壇徽章:
93
2015年辭舊歲徽章
日期:2019-10-10 10:51:15CU大;照
日期:2014-02-21 14:21:56CU十二周年紀(jì)念徽章
日期:2020-10-15 16:55:55CU大;照
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大;照
日期:2019-10-10 10:55:38季節(jié)之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季節(jié)之章:冬
日期:2019-10-10 10:57:17CU大;照
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
66 [報(bào)告]
發(fā)表于 2012-06-05 13:24 |只看該作者
不是很會(huì)講這些東西,覺(jué)得經(jīng)常逛論壇,跟大家討論問(wèn)題,幫助解答一些問(wèn)題,以及看其他人的解法學(xué)習(xí)經(jīng)驗(yàn),慢慢的就會(huì)了。經(jīng)常從別人的解法里學(xué)到一些解決問(wèn)題的新思維,感覺(jué)收獲很多。

編程這東西理論要看,不能連基本的概念都分不清楚。但所謂紙上得來(lái)終覺(jué)淺,這個(gè)還得靠動(dòng)手才行。網(wǎng)上有什么單行腳本參考什么的,在拿來(lái)用之前有空自己實(shí)現(xiàn)一次,看看跟別人寫(xiě)的有什么不一樣的地方,找到別人的方法和自己的方法之間的差別,想想為什么,想想不同的方法的區(qū)別是怎樣的,從而提高自己。

我一直覺(jué)得“正則表達(dá)式”的發(fā)明真是一種對(duì)規(guī)律的極大的概括和抽象,是一個(gè)很完美的概念。

題外話:
我發(fā)現(xiàn)我不是很會(huì)看“置頂”的帖子,因?yàn)槊看芜M(jìn)論壇上面都是一片置頂?shù)睦咸,所以不?huì)去認(rèn)真看有新貼置頂?赡艿囊粋(gè)解決辦法就是老的置頂帖用較不鮮艷的顏色,新的則用比較鮮艷的顏色。

論壇徽章:
49
15-16賽季CBA聯(lián)賽之福建
日期:2016-06-22 16:22:002015年亞洲杯之中國(guó)
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36雙魚(yú)座
日期:2015-01-02 22:04:33午馬
日期:2014-11-25 09:58:35辰龍
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龍
日期:2014-08-21 10:47:58
67 [報(bào)告]
發(fā)表于 2012-06-05 13:42 |只看該作者
seesea2517 發(fā)表于 2012-06-05 13:24
不是很會(huì)講這些東西,覺(jué)得經(jīng)常逛論壇,跟大家討論問(wèn)題,幫助解答一些問(wèn)題,以及看其他人的解法學(xué)習(xí)經(jīng)驗(yàn),慢 ...


收到您的建議了,我們現(xiàn)在也在很快的更新置頂帖了....

論壇徽章:
3
水瓶座
日期:2014-03-25 17:08:042015亞冠之塔什干棉農(nóng)
日期:2015-08-10 10:45:122015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-08-13 16:05:24
68 [報(bào)告]
發(fā)表于 2012-06-05 14:23 |只看該作者
學(xué)習(xí)學(xué)習(xí):wink::wink:

論壇徽章:
3
CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
69 [報(bào)告]
發(fā)表于 2012-06-05 15:21 |只看該作者
學(xué)習(xí)正則的后期就是如何處理減少回朔,提高效率

論壇徽章:
0
70 [報(bào)告]
發(fā)表于 2012-06-05 23:55 |只看該作者
正則好麻煩啊,用不好
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP