gpt4 book ai didi

java - 如何使正则表达式匹配组排除匹配字符?

转载 作者:行者123 更新时间:2023-11-30 09:10:54 24 4
gpt4 key购买 nike

我想匹配/提取字符串 asd{test}asd 中的单词 test

我的正则表达式:({test}.*) 将匹配 {test}。我如何能:- 匹配括号内的任何内容?- 从匹配组中排除括号?- 使匹配组可选?

最佳答案

您可以尝试使用 look-around类似 (?<=\\{)[^}]*(?=\\}) 的机制

演示:

String data = "asd{test}asd";
Pattern p = Pattern.compile("(?<=\\{)[^{}]*(?=\\})");
Matcher m = p.matcher(data);
if(m.find())
System.out.println(m.group());

输出:test

解释:

  • [^{}]* - 将匹配零个或多个非 {}字符
  • (?<=\\{) - 有 {在它之前(我们需要在这里转义 { 因为它是正则表达式元字符)
  • (?=}) - 和 }在它之后
    (我们不必在这里转义 },因为它不是 {..} 量词的一部分)

关于java - 如何使正则表达式匹配组排除匹配字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com