java正则表达式的小问题 本帖最后由 jdgdf566 于 2013-11-20 20:52:51 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 正则表达式使用通用术语来描述字符串的一种方法,你可以说:如果一个字符串包含这些东西,那么它与我要找的东西匹配。例如,要表达一个数可能有也可能没有负号你可以在负号下面跟一个问号:-?要表示一个整数,你可以描述其具有一位或多位数字。在正则表达式中,一个数位用'\d'表示,但在java的字符串类型中,我们必须添加一个反斜线才能“转义”表达出反斜线:‘\\d’。正则表达式中要说明有一个或多个前述的表达式,就要使用'+'。所以要表达“可能有负号,后面有一个或多个数位”,我们要这样写:-?//d+ 在java里这个是匹配一个点\在java里是特殊字符需要转义匹配\.的表达式 "\\\\·" 感觉你的理解错了吧,java中用正则来匹配的话, .就是匹配任何字符啊!!!我用下面的测试了import java.util.regex.*;public class testzhengze{public static void main(String[] args){String str="a.b";Pattern p=Pattern.compile(".");Matcher m=p.matcher(str);while(m.find()){System.out.println(m.group());}}}输出就是可见,.匹配了任何字符啊 java正则中的\\.表示.这个字符的字面意义,不再表示正则中的任意一个字符了!测试如下:import java.util.regex.*;public class testzhengze{public static void main(String[] args){String str="a.b";Pattern p=Pattern.compile("\\.");Matcher m=p.matcher(str);while(m.find()){System.out.println(m.group());}}}运行机制可能是这样的,\\.在经过编译器(不知道还是JVM编译时),\\转义成了\,所以就变成了\.,正则编译时,将\.转义成普通字符 .,所以这个不再表示任意一个字符了,只是一个 . 了 求出一个数组的所有子数组 HTML自定义右键的菜单 JAVA能写操作系统吗 JList 问题 看看这两者有什么不同....... "java开源"到底是指开放什么东西?jdk的源码不是本来就开放的么? mysql 语句 50分 菜鸟问题:为什么可以运行java.exe而不能运行javac.exe table问题,谢谢大家帮忙,在线等... IO拷贝文件 刚学到异常,请教一下 谁有解决Canvas闪烁的经验?
要表示一个整数,你可以描述其具有一位或多位数字。在正则表达式中,一个数位用'\d'表示,但在java的字符串类型中,我们必须添加一个反斜线才能“转义”表达出反斜线:‘\\d’。正则表达式中要说明有一个或多个前述的表达式,就要使用'+'。所以要表达“可能有负号,后面有一个或多个数位”,我们要这样写:-?//d+
匹配\.的表达式 "\\\\·"
我用下面的测试了
import java.util.regex.*;
public class testzhengze{
public static void main(String[] args){
String str="a.b";
Pattern p=Pattern.compile(".");
Matcher m=p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
}
}
输出就是
可见,.匹配了任何字符啊
测试如下:
import java.util.regex.*;
public class testzhengze{
public static void main(String[] args){
String str="a.b";
Pattern p=Pattern.compile("\\.");
Matcher m=p.matcher(str);
while(m.find()){
System.out.println(m.group());
}
}
}
运行机制可能是这样的,\\.在经过编译器(不知道还是JVM编译时),\\转义成了\,所以就变成了\.,正则编译时,将\.转义成普通字符 .,所以这个不再表示任意一个字符了,只是一个 . 了