分享
 
 
 

Java与正则表达式(2年级2)

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Java与正则表达式(2年级2)

学习正则表达式,我本来也按照正则表达式的组件一个个地攻。Java中写的Summary of regular-eXPression constrUCts也不过6页纸,花上1天半天的时间一个个测试,学得也差不多了。可惜yqj2065的记性好、忘性大,3天之后记得几个最简单的东西了。惨。

MSDN上的正则表达式介绍 就是完整的教材,yqj2065又学习了一次(JScript),10天后又忘得7788了。

现在我变个花样考虑:假如我设计regex,按照(2年级之1)中的5点能不能搞定呢?把核心5点记住先:

1. 基本正则表达式:一个单字符a(其中a 在正规字符的字母表∑中),以及元字符或元字符组成。可能是: L (a) = {a}; L (ε) ={ε}; L (Ф) = {}。

r和s 均是正则表达式时:

2. r s表达式: L (r s) = L (r) ∪ L (s)。

3. rs表达式: L (r s) = L (r) L (s)。

4. r*表达式: L (r*) = L (r) *。

5. (r)格式的表达式: L ( (r)) = L (r),括号并不改变语言,它们只调整运算的优先权。闭包>连结>并集。

我不用脑袋,用5个指头记它们。那个指头忘性大,就打那个指头。单字符、并集 、连结、闭包 *、括号()。

§3字母表∑

单字符依靠于字母表∑,Java支持Unicode。所有,∑=Unicode。比如说:

String str=” 单字符依靠于字母表”,regex是字。效果不错。

我想使用EditPad Pro方便一些,它却不支持Unicode。也罢,本来就不预备现在研究它(3年级再搞。),先搞定ASCII - The American Standard Code for Information Interchange,似乎在汇编语言中经常查一下。现在都有些模糊了。

ASCII大概分成这几个部分:可打印和不可打印字符。

l 不可打印字符Non-Printable Characters:Java中有几个不可打印字符,能放在正则表达式中,这些东西倒是有点希奇。

l 可打印字符:所有大写和小写字母、所有数字、所有标点符号和一些其他符号。这里的要害在于有一些可打印字符with special meanings,成为了元字符(metacharacters)。

所有的ASCII字符中,我们千调万选找了一个最非凡的字符backslash \,作为转义escape开关。虽然与Java的转义符号一样,我还是希奇为什么选它而不选#。它很轻易与除号/混淆,另外M$ OS中的目录经常是E:\Regex\1\2,我听说C++编程时,其regex要用E:\\\\Regex\\\\1去匹配,不知在Java的源代码中,怎么样。

核心1点说明:单一的a、x、#,’,” 都是基本的regex。单一的元字符都不是基本的regex。

练习:str=” b!c@d#e$f%g^h&j&k*l”+

”(m)n_o+pq\r=s-t/u.v,W?x>y<z\"aa\'”

①regEx="#"(或\"、\’、 r、 \\、 >、n、)注重:Java的源代码中String要使用转义\"而且regEx="\"",但正则表达式是"如程序:

import java.util.regex.*;

class Regex1{

public static void main(String args[]) {

String str="For my\" money\" ";

String regEx="\""; //

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(str);

boolean result=m.find();

System.out.println(result);

}

}

这里的要点是:Java语言本身对源代码中的一些字符\"要经过编译处理,之后正则表达式引擎才得到一个regexp"。这也是C++用4个backslash匹配一个\文本字符的原因。我们要区别Java语言与正则表达式各自的要求。

在使用各种正则表达式练习器时,一定要注重。

§4并集

核心2点是ab。在文档中称为"character class", 也叫 "character set"。这就不好翻译了,字符集轻易与ASCII字符集等混淆,字符类?不伦不类。也许叫字符并集比较好,

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有