Java 如何使用正则表达式仅获取介于“(`和`)`之间的字符?

Java 如何使用正则表达式仅获取介于“(`和`)`之间的字符?,java,regex,Java,Regex,我有这样一个场景: A=add1a,2b,3c,4d现在我只想要括号内的值。我怎么做?有人能帮我吗 我试着用这个: 全部替换\\d,;它删除了所有的整数,但我想用逗号将字符放在括号内 例如:a、b、c、d您可以使用以下正则表达式: \\*\\ 如果要提取不带、、的字符,可以使用 您的解决方案不起作用,因为您正在做一些无关的事情。您正在将所有数字替换为,这意味着您正在删除它们 另一个解决方案: String myStr = str.split("\\(|\\)")[1]; 如果您的字符串是A=a

我有这样一个场景:

A=add1a,2b,3c,4d现在我只想要括号内的值。我怎么做?有人能帮我吗

我试着用这个:

全部替换\\d,;它删除了所有的整数,但我想用逗号将字符放在括号内


例如:a、b、c、d

您可以使用以下正则表达式:

\\*\\

如果要提取不带、、的字符,可以使用

您的解决方案不起作用,因为您正在做一些无关的事情。您正在将所有数字替换为,这意味着您正在删除它们

另一个解决方案:

String myStr = str.split("\\(|\\)")[1];

如果您的字符串是A=add1a,2b,3c,4d,在正则表达式之后,您将得到1a,2b,3c,4d。如果您不需要INT,请使用replaceAll。

\[^\]*\将在第一组a、b、c、d中返回。

您需要的模式是:\\.\\\\\\\\

下面的代码演示了如何使用此模式查找输入字符串中括号中包含的所有项目:

String example = "A= add(a,b,c,d)";
Pattern pattern = Pattern.compile("\\((.*)\\)");    
Matcher matcher = pattern.matcher(example);

while (matcher.find()) {
  System.out.println(matcher.group(1));
}
印刷品:

a,b,c,d
[0-9]这将匹配数字和括号

.*?=\n这将匹配开始括号之前的任何内容

P在中间的作用类似于或类似于这个(

)。 在你的情况下,用a替换这个a=add1a,2b,3c,4d将变成a,b,c,d


在此处测试并选择顶部的“替换”选项卡

a、b、c、d的实际值中是否有括号?在这种情况下,正则表达式就不是办法了。adda,b,c,d现在我想去掉括号外的字符,用逗号获取括号内的字符。我想要的输出是a,b,c,d。我用null替换整数,我想用逗号替换括号内的字符。我得到的答案就像add a,b,c,我只想要a,b,c,d不add@user2841300这就是你想要的不?得到a,b,c,d+1,但我花了一段时间才弄明白你在做什么。通过将其调整为[0-9]+|^.*?=\,可以使您的意图更加明显。+和^的添加不会改变匹配的内容,作为额外的奖励,它使正则表达式更加高效。
([0-9()]|.*(?=\())