Regex - 正规表示法

Regex、正规表示法


这篇文章应该是挤了三年才出来(夸张),会这样说,是因为这个东西在我的每年的计划目标都出现

(代表每年都没有达成 =.=) 如此就可知道Regex是多么的恼人的学习,

至少对我来说学习曲线有点高度,看着一些火星文,内心都会冒出OS:ㄊㄋㄋㄉ

最后都会逃避,然后选择土法炼钢的方式拆解出我要的字符串,就在近期才强迫自己学习,

一开始是先在网络上搜寻资源,找到一个 "模拟器" Expresso 3.0

然后在在保哥的网站上找到一篇推荐的入门文章,一切就绪后就可以开始

http://www.dotblogs.com.tw/johnny/archive/2010/01/25/13301.aspx

看了一天也是一知半解(还我八小时来),也不知道会不会,就直接在模拟器上模拟,比较容易了解

如下

如上图,我想要解析一个网页,要抓取的是

~
之间的数据,

直觉上来说,我们的想法很就是希望抓取

开头,
结尾

因此

1.这段Pattern的 (

[Srn]{0,})+
黄色部分大家应该都是没问题

2.接下来要解析[Srn] 请参考入门网址,

        [] 内的代表符合条件的"参数"。

        S代表空白以外的符。(参数一)

        rn代表换行符。(参数二)

       因此这段我们可以说 "符合空白以外 且 符合换行" 的数据

3.{0,} 的解释就是符合2.的条件次数(这有点难解释),入门网址的讲解太拢统,

后面我会举个简单例子补充说明这段。

目前的表示 :符合 "

后面接着符合 "空白以外 或 换行" 的符 (2.) ,且重复了 0次以上 (3.)

4.+是看都看不懂,直接操练上才了解,就是在+之前的符出现一次或一次以上的都算是符合的条件

5.最后再补个

"开头(1.)
做结尾就是我要抓到的数据的(图右下角 Search Result)。

结论:其实小马自己在网络上也是看了很多数据,但是可能资质驽钝,总觉得在网络上的说明就

像是 "当且仅当" 这种很讨人厌的学术用语 (就不能用白话文说明吗 ? (╯-_-)╯ ~╩╩ )

花了很多时间,最后还不如找个范例自己实做了解的快。

补充说明:刚才{0,}的解释,用个简单的范例画面说明客官比较容易了解

下篇会将此结果实际应用在.Net 范例上。

Bascally, Regex is really difficult to explain for me.  The best way is find a sample to try it.

补充:一个朋友分享了一不错解析Regex的线上工具

http://www.regexper.com/

有图显示加减对于学习有一些帮助喔 !


原文:大专栏  Regex - 正规表示法


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11496765.html
今日推荐