如何解决括号中的正则表达式
我有以下字符串:
(20% up)
我要提取20
我已经尝试过\(([^%]+)\)
但是不能独自获得价值。
解决方法
您可以使用
(?<=\()\d+(?=%[^()]*\))
请参见this regex demo。
详细信息
-
(?<=\()
-(
必须立即出现在左侧 -
\d+
-一个或多个数字 -
(?=%[^()]*\))
-一个%
以及除(
和)
后跟)
以外的零个或多个字符必须立即显示在右侧。
这是在Java中可能要做的事情。
-
(\\d+)
捕获了20个 - 如果您特别想关注空格和
up
之后的空格,可以将其放在%
符号之后。例如((\\d+)% up
)
String s = "(20% up)";
Matcher m = Pattern.compile("(\\d+)%").matcher(s);
if (m.find()) {
System.out.println(m.group(1));
}
打印
20
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。