猿问

如何通过使用正则表达式排除相同内容来仅匹配圆括号

我有 String lower(Type) 或 LOWER(Type)

我必须替换单词 lower() 或 LOWER() 以便输出应该是

类型

要解决此问题,我需要一个仅匹配 lower() 或 LOWER() 单词并排除 Lower() 或 LOWER() 中存在的任何内容的正则表达式

我试过下面的正则表达式 -

lower\(.*\)

但它匹配完整的单词,包括圆括号内的内容


开心每一天1111
浏览 217回答 1
1回答

蝴蝶不菲

与其考虑如何使用or只匹配您想要的字符串,不如使用将与模式匹配的字符串替换为另一个字符串。Matcher.matchesMatcher.findString.replaceAll您可以使用此正则表达式:(?i)lower\(([^)]*)\)用替换$1来做到这一点:String result = inputString.replaceAll("(?i)lower\\(([^)]*)\\)", "$1");正则表达式基本上lower(不区分大小写匹配 ( (?i)),然后将括号中的所有内容放入组 1 ( ([^)]*)),然后匹配右括号。替换$1意味着替换为组 1 中的任何内容。这意味着lower(Type)将替换为Type。正则表达式演示
随时随地看视频慕课网APP

相关分类

Java
我要回答