我有 String lower(Type) 或 LOWER(Type)我必须替换单词 lower() 或 LOWER() 以便输出应该是类型要解决此问题,我需要一个仅匹配 lower() 或 LOWER() 单词并排除 Lower() 或 LOWER() 中存在的任何内容的正则表达式我试过下面的正则表达式 -lower\(.*\)但它匹配完整的单词,包括圆括号内的内容
1 回答
![?](http://img1.sycdn.imooc.com/5333a0780001a6e702200220-100-100.jpg)
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
与其考虑如何使用or只匹配您想要的字符串,不如使用将与模式匹配的字符串替换为另一个字符串。Matcher.matches
Matcher.find
String.replaceAll
您可以使用此正则表达式:
(?i)lower\(([^)]*)\)
用替换$1
来做到这一点:
String result = inputString.replaceAll("(?i)lower\\(([^)]*)\\)", "$1");
正则表达式基本上lower(
不区分大小写匹配 ( (?i)
),然后将括号中的所有内容放入组 1 ( ([^)]*)
),然后匹配右括号。替换$1
意味着替换为组 1 中的任何内容。这意味着lower(Type)
将替换为Type
。
正则表达式演示
添加回答
举报
0/150
提交
取消