Java 如何使用正则表达式或任何方法从较大的字符串中抓取一段字符串
我正试图从一根更大的绳子中提取一根绳子 示例:Java 如何使用正则表达式或任何方法从较大的字符串中抓取一段字符串,java,regex,string,Java,Regex,String,我正试图从一根更大的绳子中提取一根绳子 示例: String value; ...etc... value = someMethod(); // Here value equals a large string text value; 我想提取这个字符串的一个子集,它以“path=”开头,然后是它后面的所有内容 详细示例: String value; ...etc... value = someMethod(); // Here value equals a large string te
String value;
...etc...
value = someMethod();
// Here value equals a large string text
value;
我想提取这个字符串的一个子集,它以“path=”开头,然后是它后面的所有内容
详细示例:
String value;
...etc...
value = someMethod();
// Here value equals a large string text
value;
如果值等于:
StartTopic=testParser,multiCopy=false,required=true,
all=false,path=/Return/ReturnData/IRSW2
我只需要“path=/Return/ReturnData/IRSW2”等等
我如何在Java中做到这一点
这就是我目前拥有的:
if(value.contains("path")) {
String regexStr = FileUtils.readFileToString(new File("regex.txt"));
String escapedRegex = StringEscapeUtils.escapeJava(regexStr);
System.out.println(value.replaceAll(escapedRegex), "$1");
}
这不行!只需再次输出整个字符串
regex.txt的内容:
String value;
...etc...
value = someMethod();
// Here value equals a large string text
value;
/路径=([^\,]+)/
使用函数indexOf()查找“path=”的索引。这应该可以解决问题
String str = "path=/Return/ReturnData/IRSW2";
System.out.println(str.substring(str.indexOf("path=") + 5));
String s=“如果value=StartTopic topic=testParser,multicpy=false,required=true,all=false,path=/Return/ReturnData/IRSW2”;
String regex=“path=[^\\,]*”;
Pattern p=Pattern.compile(regex);
匹配器m=匹配器p;
if(m.find()){
System.out.println(m.group());
}
您还可以使用:
String regex = "(?<=path=)[^\\,]*";
String regex=“(?这只适用于预期长度的文本字符串。谢谢,这确实做到了trickOP明确规定的“regex或任何方法”