java 简单的正则表达式

1.正则表达式的用处

正则表达式定义了字符串的模式。
正则表达式可以用来搜索、编辑或处理文本。

2.基本语法

https://www.runoob.com/java/java-regular-expressions.html

3.实例

1.匹配 Game ::= 100|200|400

Pattern temp1 = Pattern.compile("Game\\s?::=\\s?([0-9]*)");\\

讲解\\s?是匹配一个或零个空格,
[0-9]*是匹配[0-9]的闭包-{∅,x,x ²……}, {x|x∈[0-9]}。
()是捕获组

String str = "Game ::= 100";
Matcher Temp1 = temp1.matcher(str);
String GameName = Temp1.group(1);//获得游戏名字

2.匹配 NumOfTracks ::= 跑道数目,4到10之间的整数。

Pattern temp2 = Pattern.compile("NumOfTracks\\s?::=\\s?(4|5|6|7|8|9|10)");//匹配跑道数目

(4|5|6|7|8|9|10)是只匹配字符∈{4,5,6,7,8,9,10}。

String str = "NumOfTracks ::= 8";
Matcher Temp2 = temp2.matcher(str);
int NumOfTrack = Integer.parseInt(Temp2.group(1));

3.匹配 Athlete ::= <姓名,号码,国籍,年龄,本年度最好成绩>
姓名是由大小写字母构成,不含有空格。号码和年龄是正整数。
国籍是三位大写字母,成绩是最多两位整数和必须两位小数构成。

Pattern temp3 = Pattern.compile("Athlete\\s?::=\\s?<([a-zA-Z]+),(\\d+),([A-Z]{3}),(\\d+),(\\d{1,2}.\\d{2})>");

[a-zA-Z]+ 匹配字符x(x∈{a,b,…,z,A,B,…,Z})至少一次。
\\d+ 匹配[0-9]至少一次。
[A-Z]{3} 匹配字符x(x∈{A,B,…,Z})三次。
(\\d{1,2}.\\d{2}),先匹配[0-9]一或两次,再匹配小数点“.”,最后匹配[0-9]两次。

4.匹配 NumberOfElectron ::= 轨道号 1/该轨道上的电子数量; 轨道号 2/该轨道上的电子数量;…
例 NumberOfElectron ::= 1/2;2/6
这个个人感觉是最难的,因为它需要在每个轨道信息分割为";",但是最后结尾不能由";"。这个在学习了形式语言自动机中正则语言就好做了。
首先在轨道信息结束前,每个加入的是 \\d/\\d;,结尾就是**\\d/\\d**。所以先将前面匹配,最后的单独匹配

Pattern temp3 = Pattern.compile("NumberOfElectron ::= ([0-9]+/[0-9]+;)*([0-9]+/[0-9]+)");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值