我正在尝试从较大的字符串中提取一段字符串。
示例:
String value;
...etc...
value = someMethod();
// Here value equals a large string text
value;
我想提取该字符串的一个子集,该子集以“path=”开头及其后的所有内容。
详细示例:
如果值等于:
StartTopic topic=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 的内容:
/path=([^\,]+)/
最佳答案
这应该可以解决问题
String s = "if value=StartTopic topic=testParser, multiCopy=false, required=true, all=false, path=/Return/ReturnData/IRSW2";
String regex= "path=[^\\,]*";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
if(m.find()) {
System.out.println(m.group());
}
关于java - 如何使用正则表达式或任何方法从较大的字符串中抓取字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31952634/