一个关于正则表达式的问题 谁能帮忙看一下这个正则表达式匹的是什么:regex = "\".+\"";思索良久,仍一筹莫展的,望大虾指教,谢谢~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 .是匹配除了换行符之外的任意字符的,+表示重复1次或者多次。public class RegexTest { public static void main(String args[]){ String regex = "\".+\""; String str1 = "\"sajdlksajdladsadsadsadsa\""; String str2 = "\"sajdlksajdla\ndsadsadsadsa\""; System.out.println(str1.matches(regex)); System.out.println(str2.matches(regex)); }} 这个表达式有问题的!.+ 属于贪婪式匹配,以匹配尽可能多的为己任。做个测试就知道了:import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test5 { private final static Scanner console = new Scanner(System.in); public static void main(String[] args) { String regex = "\".+\""; String str = "abc\"123\"def\"456\"ghi\"789\"jklmnopqrstuvwxyz"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(str); while(matcher.find()) { System.out.println(matcher.group()); } }}把表达式改成懒惰式匹配 .+? 就会变成另外一种情况:import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test5 { private final static Scanner console = new Scanner(System.in); public static void main(String[] args) { String regex = "\".+?\""; String str = "abc\"123\"def\"456\"ghi\"789\"jklmnopqrstuvwxyz"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(str); while(matcher.find()) { System.out.println(matcher.group()); } }}当然了,也可以改成 String regex = \"[^\"]+\"; java sound api ArrayList set函数返回原来的旧值,有什么好处 关于Singleton单例模式的一点疑问,高手指点 IBM要求SUN对Java开源,究竟是什么意思呢?开些什么“源”呢? 怎么用UltraEdit呀? 向大家请教关于数组的问题 如何让同一个文本框内的文字拥有不同的字体及颜色? 我如何在java里面调用DCOM?(UP有分) 重分求weblogic文档 那里还有人气较旺的有关java的论坛 请问关于import java.class.*的问题....... java弦截法求方程根
public class RegexTest {
public static void main(String args[]){
String regex = "\".+\"";
String str1 = "\"sajdlksajdladsadsadsadsa\"";
String str2 = "\"sajdlksajdla\ndsadsadsadsa\"";
System.out.println(str1.matches(regex));
System.out.println(str2.matches(regex));
}
}
import java.util.regex.Pattern;public class Test5 {
private final static Scanner console = new Scanner(System.in); public static void main(String[] args) {
String regex = "\".+\"";
String str = "abc\"123\"def\"456\"ghi\"789\"jklmnopqrstuvwxyz";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
System.out.println(matcher.group());
}
}
}把表达式改成懒惰式匹配 .+? 就会变成另外一种情况:import java.util.regex.Matcher;
import java.util.regex.Pattern;public class Test5 {
private final static Scanner console = new Scanner(System.in); public static void main(String[] args) {
String regex = "\".+?\"";
String str = "abc\"123\"def\"456\"ghi\"789\"jklmnopqrstuvwxyz";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
System.out.println(matcher.group());
}
}
}当然了,也可以改成 String regex = \"[^\"]+\";