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

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

Chinaunix

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

不貪婪的 sed  關(guān)閉 [復(fù)制鏈接]

論壇徽章:
0
11 [報告]
發(fā)表于 2004-10-15 13:38 |只看該作者

不貪婪的 sed

我可以做,但是寫這個東西很有必要嗎?
如果你想自己做的話,可以看我注釋的 grep.c,看懂了就可以隨心所欲怎么改都行了。
http://mhss.nease.net/unix/grep.c

論壇徽章:
0
12 [報告]
發(fā)表于 2004-10-15 13:43 |只看該作者

不貪婪的 sed

謝謝 回去鉆研 :)

論壇徽章:
0
13 [報告]
發(fā)表于 2004-10-15 22:46 |只看該作者

不貪婪的 sed

ssed is a version of sed that supports a few new features, including Perl regular expressions and much greater speed than GNU sed.

Visit http://sed.sourceforge.net/

論壇徽章:
0
14 [報告]
發(fā)表于 2004-10-18 09:30 |只看該作者

不貪婪的 sed

居然還有個 ssed, 佩服外國同行的敬業(yè)精神。

論壇徽章:
0
15 [報告]
發(fā)表于 2004-10-20 12:17 |只看該作者

不貪婪的 sed

我注釋的 ken 的 grep.c 中定義的正則表達(dá)式與 posix 標(biāo)準(zhǔn)有一些出入,畢竟是 1969 年 ken 搞 pdp7 unix 時候做的東西了,在 1979 年發(fā)行的 unix v7 中增加了 aho 的 egrep.y,介入了擴(kuò)展正則表達(dá)式,稱它為擴(kuò)展,則 ken  的定義就只好叫基本正則表達(dá)式了,他的擴(kuò)展主要是再次加入了 | 和 () 分別表示多選和組合,其中的 (...) 與 ken 的 \(...\) 的本質(zhì)區(qū)別是 (...)* 表示子表達(dá)式的閉包,而\(...\)* 中的 * 是個普通字符, 就是說\(...\) 不起到組合作用。
在1979 年 unix v7 中引入的 sed 采用的是 ken 的正則表達(dá)式,這是必須的,因?yàn)樽鳛榫庉嬈鳎枰笠脵C(jī)制,aho 的定義不支持后引用,并且嚴(yán)肅的說后引用超出了純粹的有窮自動機(jī)的表達(dá)能力。ken 定義中 \(...)\ 作用就是表示引用的開始和結(jié)束,以被后引用所引用。
經(jīng)歷了無休無止的功能擴(kuò)展,新近的 sed 如 gnu sed 的\(...)\ 也起到了組合作用,比如
echo '333444' | sed 's/\(3\)*/<\1>/'
打印 <3>444
echo '333444' | sed 's/\(34*\)*/<\1>/'
打印 <3444>
這表明了后引用捕獲的是與閉包中子表達(dá)式相匹配的最后的那個匹配串。
依據(jù)現(xiàn)存的發(fā)展和 posix 標(biāo)準(zhǔn)的明文。我增改了 ken 的 grep.c 。同時也就使 sed 的行為與標(biāo)準(zhǔn)相一致了。
我修訂的 sed 的與 gnu sed 有一個明顯的語義差別。
echo '333444' | ./sed 's/\(34\)*/<\1>/'
打印 33<34>44
而 gnu sed 中
echo '333444' | sed 's/\(34\)*/<\1>/'
打印 <>333444
期盼仁者指正。
我做的算法修訂還需要嚴(yán)肅的調(diào)試和測試,不過我認(rèn)為沒有繼續(xù)這種努力的必要。

論壇徽章:
0
16 [報告]
發(fā)表于 2004-10-28 08:55 |只看該作者

不貪婪的 sed

不是很理解為什么是這個結(jié)果,sed我研究的不多:

echo '333444' | sed 's/\(34\)*/<\1>/'
打印 <>333444
比較一下感覺這個結(jié)果這"合理"?
echo '333444' | ./sed 's/\(34\)*/<\1>/'
打印 33<34>44

請指教.

論壇徽章:
0
17 [報告]
發(fā)表于 2004-10-28 09:45 |只看該作者

不貪婪的 sed

我對 gnu sed 的這種輸出持保留態(tài)度,要知道為什么就要分析它的源代碼了;就算它的算法有問題,成千上萬的 sed 腳本就是對這個事實(shí)的認(rèn)可,存在即合理。

論壇徽章:
0
18 [報告]
發(fā)表于 2004-10-29 09:35 |只看該作者

不貪婪的 sed

[quote]原帖由 "mhss"]我注釋的 ken 的 grep.c 中定義的正則表達(dá)式與 posix 標(biāo)準(zhǔn)有一些出入,畢竟是 1969 年 ken 搞 pdp7 unix 時候做的東西了,在 1979 年發(fā)行的 unix v7 中增加了 aho 的 egrep.y,介入了擴(kuò)展正則表達(dá)式,稱它為擴(kuò)展,則..........[/quote 發(fā)表:





  1. echo '333444' | sed 's/\(34\)/<\1>/'
  2. print :  33<34>44
復(fù)制代碼

論壇徽章:
0
19 [報告]
發(fā)表于 2004-10-29 09:37 |只看該作者

不貪婪的 sed

如果任務(wù)是要找出 333444 中的 34 當(dāng)然是這么寫。一個具體問題可以使用有多種機(jī)制來解決,我關(guān)心的是某個機(jī)制本身的問題。

論壇徽章:
0
20 [報告]
發(fā)表于 2004-11-02 18:41 |只看該作者

不貪婪的 sed

原帖由 "Lanma" 發(fā)表:
不是很理解為什么是這個結(jié)果,sed我研究的不多:

echo '333444' | sed 's/\(34\)*/<\1>/'
打印 <>333444
比較一下感覺這個結(jié)果這"合理"?
echo '333444' | ./sed 's/\(34\)*/<\1>/'
打印 33&..........


因?yàn)閈(34\)*還匹配0個\(34\)
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(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