作者HZYSoft (pcman.ptt.cc)
看板PCman
标题[心得]我终於发现一件事情...
时间Tue Feb 10 06:24:45 2004
原来超连结问题是要这样解决的....
查看了 Linux 上的 Gnome terminal 程式码,原来他的做法,跟我猜的一样
难怪他可以完整支援超连结点选 (当然他也不可能做到支援多行网址)
不敢相信他真的是用 regular expression 去搜寻超连结,这实在是太没效率了!
我之前就想过可以用 regular expression ,但是这实在太复杂了,又比较没效率
何况,让使用者用 regular expression 来设定那不如叫他们不要用算了
regular expression 是一种表示搜寻条件的特殊语法,对一般人来说根本看不懂
熟析 unix 操作的高手们也许很喜欢用,但要一般人去习惯用那种东西,那是没可能的
他在每一行当中搜寻符合这样特徵的东西,就当做超连结处理
"(((news|telnet|nttp|file|http|ftp|https)://([-A-Za-z0-9]+(:[-A-Za-z0-9,?;
.:/!%$^*&~\"#']+)?@)?)|(www|ftp)[-A-Za-z0-9]*\\.)[-A-Za-z0-9.]+(:[0-9]+)?
/[-A-Za-z0-9_$.+!*(),;:@&=?/~#%]*[^]'.}>) \t\r\n,\\\]"
这才是侦测超连结的完整方式,但问题是...有人知道这在干麻吗?
我查过 regular expression的文件,只是觉得真的要这样搞太小题大作,而且真没效率
而如果不写死在程式里面...那就意味着使用者要用上面那一串字来进行超连结设定
这鬼才会用...只是要打个 BBS 有需要这样吗? 还是别太夸张....
这样又陷入苦思之中了,要用简单的设定达成类似的功能好像没可能...
唯一的方法还是只有超连结侦测方式写死在程式里,不能让使用者改了??
其实真的说起来每种超连结侦测方式确实都不同,要让使用者设定可能性很低
这也是为何其他软体也只支援 http:// ftp:// 等常见连结,并且写死在程式中
否则使用者就要直接用 regular expreession 来进行设定了!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.129.59.3
1F:→ yuehyang:6^^ 再接再励 ^o^ 推218.164.124.238 02/10
2F:→ mou3:虽然我看不太懂,但很感谢你的PCman,加油^^ 推 203.204.162.85 02/10
3F:→ NelsonT:我看得懂耶 XD 推 61.227.144.57 02/13