求个正则表达式,Java能用的
若是仅实现你列出的需求可以给你个式子:
JAVA:
Pattern reg = Pattern.compile(“\\(?((\\d+[+-*/])*\\((\\d+[+-*/])+\\d\\)?([+-*/]\\d+)*)\\)“);
如果你还想嵌套你用C#平衡组吧,或者根本不建议用正则实现。
标准正则实现这个是非常吃力的。
JAVA正则表达式代码
\S{6,18}
以下是常用的正则表达式希望能帮到你。
size=12px]1。^\d+$ //匹配非负整数(正整数 + 0)
2。^**$ //匹配正整数
3。^((-\d+)|(0+))$ //匹配非正整数(负整数 + 0)
4。^-**$ //匹配负整数
5。^-?\d+$ //匹配整数
6。^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0)
7。^((+\.**)|(**\.+)|(**))$ //匹配正浮点数
8。^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮点数(负浮点数 + 0)
9。^(-((+\.**)|(**\.+)|(**)))$ //匹配负浮点数
10。^(-?\d+)(\.\d+)?$ //匹配浮点数
11。^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
12。^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
13。^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
14。^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
15。^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
16。^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
17。^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
18。匹配中文字符的正则表达式: [\u4e00-\u9fa5]
19。匹配双字节字符(包括汉字在内):[^\x00-\xff]
20。应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,“aa“).length;}
21。匹配空行的正则表达式:\n[\s| ]*\r
22。匹配HTML标记的正则表达式:/《(.*)》.*《\/\1》|《(.*) \/》/
23。匹配首尾空格的正则表达式:(^\s*)|(\s*$)
-java正则表达式生成器
Java中怎么简单的使用正则表达式
一个正则表达式就是由普通字符(例如大小写字母)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。-java正则表达式生成器
在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式“java“中没有包含任何元字符,它可以匹配“java“和“javascript“等字符串,但是不能匹配“Java“。
正则表达式不仅能进行字符串的匹配,还能进行字符串的提取、替换。
示例代码:
String regEx = “.+/(.+)$“;
String str = “D:/java/test.txt“;
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if (!m.find()){
System.out.println(“文件路径格式错误!“);
return;
}
System.out.println(m.group(1));
运行结果:test.txt
正则表达式“.+/(.+)$”的含义就是:被匹配的字符串以任意字符序列开始,后边紧跟着字符“/”,最后以任意字符序列结尾,“()”代表分组操作,这里就是把文件名做为分组,匹配完毕就可以通过Matcher 类的group方法取到所定义的分组了。需要注意的这里的分组的索引值是从1开始的,所以取第一个分组的方法是m.group(1)而不是m.group(0)。-java正则表达式生成器