以前看了几次regex,可是用得比较少,所以忘记得比较快。
这次记一下:
可以参考此链接:http://baike.baidu.com/link?url=pAGNQKW-AxL925zqGA8KVsPgzn2S8GBy3pFR9igJesyqQaObsXJabivP_fuWyBVCSF5cLIKycp6QEZ0ITnlpDK
正则表达式:使用一个表达式匹配一个连续的字符串。
意思就是可以使用正则表达式匹配一定格式的字符串。而写好这个表达式就是学正则表达式的目标。
例1:
就匹配单个字符而言,比如字符串:apple
如果要匹配”l”这个字符,那正则表达式就是一个l就行
如果要匹配”pl”这个字符串,那正则表达式就是pl
例2:
就匹配一个字符,但是这个字符可以是一定范围的,或自己给定的一个集合中的一个,比如字符串:@@@u@@@
如果只要匹配中那个u(可以是数字,字母),那正则表达式可以是[u]。
也可以是[uadf](注意,这个不是匹配”uadf”这个字符串,而是他会在某个字符串内查找有没有符合”u”,”a”,”d”,”f”这个集合中的其中一个字符。),因为这个集合内有u所以可以成功的找出”@@@u@@@”这个字符串中的”u”。
也可以用[a-zA-Z0-9],这个表达式说明了集合内有小写字母a到z和大写字母A到Z和数字0到9。因为这个集合内包含u所以还是可以到”@@@u@@@”里面的”u”。
这里要记住[]总是表示一个集合,不能用他来表示一个字符串,比如字符串:”apple”,你只能用正则表达式apple来表示这整个字符串,而用[apple]只能用来查找字符串”apple”中是否有符合集合”a”, “p”, “l”, “e”中的其中一个字符。
例3:
元字符\d的意思是匹配一个数字,他也可以用集合的方式给出[0-9],两个是等价的,都是查找一个数字。
例4:
有两种方法可以消除元字符本身的意思而代表他字符本身。
第一种:
\*,这表示查找”*”这个字符
第二种:
[!?.],这表示查找匹配标点符号(!或?或.)