正则表达式 小问题 我有一个字符串 d:\aaa\bbb\ccc\ddd.exe 我想得到 d:\aaa\bbb\ccc\应该怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String str = "d:\\aaa\\bbb\\ccc\\ddd.exe "; String regex="[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\"; Matcher m=Pattern.compile(regex).matcher(str); if(m.find()){ System.out.println(m.group()); } package cn.fee.work;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args) { String str = "d:\\aaa\\bbb\\ccc\\ddd.exe "; String reg = "[a-zA-Z]:[\\\\[^d]+]+"; Pattern p = Pattern.compile(reg); Matcher m = p.matcher(str); if(m.find()) { System.out.println(m.group()); } }} public class Test { public static void main(String[] args) { String str = "d:\\aaa\\bbb\\ccc\\ddd.exe"; str = str.substring(0, str.lastIndexOf("\\")); System.out.print(str); }} String str = "d:\\aaa\\bbb\\ccc\\ddd.exe "; String regex="[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\"; Matcher m=Pattern.compile(regex).matcher(str); if(m.find()){ System.out.println(m.group()); } 不知道你想要的是哪一种实现方式,我把能实现你的需求的三种实现方式都写出来了,觉得第二种实用些。String str = "d:\\aaa\\bbb\\ccc\\ddd.exe "; System.out.println(str);//String reg = "[a-zA-Z]:[\\\\[^d]+]+"; //取得以d开头的文件名的根路径String reg = "[a-zA-Z]:(\\\\[a-zA-Z]+)*\\\\";//取得以最后一个文件之前的路径,这个比较实用//String reg = "[a-zA-Z]:\\\\([a-zA-Z]+\\\\){3}";//取得某个路径的前四个路径Pattern p = Pattern.compile(reg); Matcher m = p.matcher(str); if(m.find()) { System.out.println(m.group()); } 请问可以具体讲一下 "[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\"; 是什么意思吗谢谢啊 [a-zA-Z]这个表示任一字母字符,所以"[a-zA-Z]:"用来匹配盘符.[^/|\\*? <>:\"]+这个用来匹配路径的名字.方括号中的/ | \ * ? < > : "这九个字符是windows不允许用来命名文件名和目录名的(我网上查的).这一项的意思是:非这九种字符组成的字符串,最小长度是1最大长度没有限制.////这个用来匹配一个/。*表示()中的字符串是0个或多个。 引用 4 楼 closewbq 的回复: Java codepublicclass Test {publicstaticvoid main(String[] args) { String str="d:\\aaa\\bbb\\ccc\\ddd.exe"; str= str.substring(0, str.lastIndexOf("\\")); System.out.print(str); } } 顶 这2个if要怎么运行啊? 关于菱形的打印,有点疑问。 高手请进,局部变量的问题,有点迷惑! 遇到一个开发难题,寻求好解决办法。 关于书上一个描述不是很理解,拿出来问一下~~ RandAccessFile如何修改文件中的某条记录 一个关于正则表达式的问题 100分赠于高手:请问如何用POI一下子把Excel的所有数据都读出来,不管它是什么类型的呀??在线 helping Java中怎样解析X.509格式、RSA算法的证书? 怎样知道Socket断开? 大家帮忙!着急!着急! 重写和重载有什么区别
String regex="[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\";
Matcher m=Pattern.compile(regex).matcher(str);
if(m.find()){
System.out.println(m.group());
}
import java.util.regex.Pattern;public class Test { public static void main(String[] args) {
String str = "d:\\aaa\\bbb\\ccc\\ddd.exe ";
String reg = "[a-zA-Z]:[\\\\[^d]+]+";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
if(m.find()) {
System.out.println(m.group());
}
}
}
public class Test {
public static void main(String[] args) {
String str = "d:\\aaa\\bbb\\ccc\\ddd.exe";
str = str.substring(0, str.lastIndexOf("\\"));
System.out.print(str);
}
}
String str = "d:\\aaa\\bbb\\ccc\\ddd.exe ";
String regex="[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\";
Matcher m=Pattern.compile(regex).matcher(str);
if(m.find()){
System.out.println(m.group());
}
String str = "d:\\aaa\\bbb\\ccc\\ddd.exe ";
System.out.println(str);
//String reg = "[a-zA-Z]:[\\\\[^d]+]+"; //取得以d开头的文件名的根路径
String reg = "[a-zA-Z]:(\\\\[a-zA-Z]+)*\\\\";//取得以最后一个文件之前的路径,这个比较实用
//String reg = "[a-zA-Z]:\\\\([a-zA-Z]+\\\\){3}";//取得某个路径的前四个路径
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
if(m.find()) {
System.out.println(m.group());
}
请问可以具体讲一下 "[a-zA-Z]:(\\\\[^/|\\*?<>:\"]+)*\\\\"; 是什么意思吗谢谢啊
引用 4 楼 closewbq 的回复:
Java codepublicclass Test {publicstaticvoid main(String[] args) {
String str="d:\\aaa\\bbb\\ccc\\ddd.exe";
str= str.substring(0, str.lastIndexOf("\\"));
System.out.print(str);
}
} 顶