Java 我想捕获一个没有下划线的字母数字组

Java 我想捕获一个没有下划线的字母数字组,java,regex,Java,Regex,我想在正则表达式中捕获一个字母数字组,这样它就不会捕获起始下划线。例如\u reverse(abc)应该返回reverse()。我正在使用(?\w+),但它返回

我想在正则表达式中捕获一个字母数字组,这样它就不会捕获起始下划线。例如
\u reverse(abc)
应该返回
reverse(
)。我正在使用
(?\w+
),但它
返回

您可以显式指定字符,例如:

[a-zA-Z0-9]+
你可以试试这个

[^a-zA-Z0-9()\\s+]

输出将是反向(abc)

,从您正在显示的内容来看,我假设您希望去掉左括号后面的下划线和内容

基本上,这应该适用于这样的正则表达式:

"_([a-zA-Z0-9]+\()"
这可以与
匹配器一起使用,以提取所有捕获组(在本例中为
[a-zA-Z0-9]+\(
)并返回它们

请注意,您可以在诸如和之类的实用网站上找到正则表达式所需的几乎所有帮助,后者是一个很好的可视化工具,但仅适用于
javaScript
-like表达式。
此外,RegEx 101包含一个RegEx调试器,以帮助避免

您是否需要其他特殊字符(多于u或“()”)?\w组包含a-zA-Zand下划线…因此可以尝试显式提及[a-zA-Z]+为什么还不接受任何答案?你的问题解决了吗?你可以参考以了解更多信息,可能在那里,也可能不在那里。这可以用
限定符来修正,但是这将使这个正则表达式非常慷慨。如果唯一的文本是
\u,那么就有一些(…)
那么这就足够了,但是如果不止一次出现这种情况,它可能会导致问题-因此,在
之前添加
\\s
是必要的,意思是
“\\s\\”([a-zA-Z0-9]+\\()”
对于这种情况,可能会给出输出,但也可能有嵌套结构。例如,reverse(reverse)(\u reverse(abc),1,2)U反向(abc)