java - 如何使用正则表达式或任何方法从较大的字符串中抓取字符串的一部分

标签 java regex string

我正在尝试从较大的字符串中提取一段字符串。

示例:

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/

相关文章:

java - Hibernate + Jasypt : Unable to resolve name . ..作为策略

java - 创建通用 JavaBean 构建器

Java Switch 语句,一起使用 case 值?

python - 无法在以下文本中找到模式

sql - ColdFusion 在字符串中构造数据库查询时添加额外的引号

java - 如何修复哈希表中的 ArrayIndexOutOfBoundsException?

javascript - 除非存在 “escape” 字符,否则匹配;必须在线和背靠背工作

python - Pandas 错误 "Can only use .str accessor with string values"

java - 检查线是否以点开头,然后将其删除

sql - 在 Oracle 中使用 Regexp_substr 选择字符串,直到\n字符长度内最后一次出现空格