首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用正则表达式递归匹配模式?

如何使用正则表达式递归匹配模式?
EN

Stack Overflow用户
提问于 2011-12-28 18:30:24
回答 5查看 14.4K关注 0票数 12

该字符串可以类似于以下内容之一:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a(b,c)
a(a(b,c),d)
a(a(a(a(a(b,c),d),a(e,f)),g),h)
etc

我想匹配无限个"a(x,y)“。我如何使用Regex来做这件事呢?这就是我所拥有的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\\w\\(((?:\\([a-zA-Z0-9]+\\))|(?:[a-zA-Z0-9]+)),((?:\\([a-zA-Z0-9]+\\))|(?:[a-zA-Z0-9]+))\\)

它只匹配"a(x,y)“的两个递归。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-28 18:53:30

Java的标准regex库不支持递归,因此您不能将这种通用的嵌套结构与其匹配。

但在支持递归的风格(Perl、PCRE、.NET等)中,您可以使用如下表达式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\w+(?:\((?R)(?:,(?R))*\))?
票数 11
EN

Stack Overflow用户

发布于 2016-12-16 15:34:43

您还可以使用我的正则表达式库https://github.com/florianingerl/com.florianingerl.util.regex,它支持递归正则表达式!接口与java.util.regex基本一致,只是所需的导入语句不同,例如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Pattern p = Pattern.compile("(?<first>a\\((?<second>(?'first')|[a-zA-Z]),(?'second')\\))");
assert p.matcher("a(a(a(a(a(b,c),d),a(e,f)),g),h)").find();
票数 2
EN

Stack Overflow用户

发布于 2011-12-28 18:59:58

2个选择- 1)使用词法分析自己进行模式匹配和替换,或者2)如果你想坚持使用正则表达式,那么使用一些shell编程(或任何支持语言),并从Java调用它。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8659764

复制
相关文章
format python保留小数点后几位_python四舍五入保留两位小数
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169805.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/22
1.2K0
format python保留小数点后几位_python四舍五入保留两位小数
java 四舍五入保留小数的几种方式
(new BigDecimal()).setScale()方法用于格式化小数点,有多种小数保留模式,如下:
全栈程序员站长
2022/08/31
2.4K0
【Java】Java四舍五入保留1位小数、2位小数…
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143140.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/25
2.8K0
java四舍五入保留小数「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139172.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/02
3780
java float四舍五入保留两位小数,java四舍五入float保留两位小数
摘要 腾兴网为您分享:java四舍五入float保留两位小数,远离手机,相机美颜,未来屋,微视等软件知识,以及流光,证券从业随身学,老a工具箱,polarr,特斯拉app,ae插件合集,福奈特,app名称,哈士奇表情,电视台直播源,思兔,门海,电子台账软件,3c电池,smartflashrecovery等软件it资讯,欢迎关注腾兴网。四舍五入我们大家都知道是什么但在java中四舍五入函数是什么如何实现float保留指定位数?具体我们来看小编整理的一些例子。 例子1 float f = 34.237323f; BigDecimal b = new BigDecimal(f); float f…
全栈程序员站长
2022/08/31
8330
MySQL对小数进行四舍五入等操作
FLOOR(X) 返回不大于X的最大整数。 CEIL(X)、CEILING(X) 返回不小于X的最小整数。
翎野君
2023/08/25
5480
java四舍五入(保留两位小数)[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145899.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/29
5950
java四舍五入取整算法(小数四舍五入取整公式)
static double ceil(double a):天花板函数,返回大于等于a的最小整数(但是以浮点数形式存储)。
全栈程序员站长
2022/07/31
2.2K0
java四舍五入取整算法(小数四舍五入取整公式)
Java四舍五入保留两位小数
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143295.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.1K1
sql 四舍五入 保留两位小数
数据库里的 float momey 类型,都会精确到多位小数。但有时候 我们不需要那么精确,例如,只精确到两位有效数字。
全栈程序员站长
2022/09/06
5.3K0
js保留两位小数四舍五入_parsefloat保留两位小数
如果大家想对javascript有系统深入的学习,可以参阅 JavaScript启示录 PDF原书完整版 这本经典书籍
全栈程序员站长
2022/09/23
5.1K0
bigdecimal保留最多小数位_bigdecimal四舍五入保留两位小数
参考:https://www.cnblogs.com/jpfss/p/8072379.html
全栈程序员站长
2022/11/09
9030
Python3 四舍五入问题详解
“就本质来说,浮点算术是不精确的,而且程序员们很容易滥用它,从而使计算的结果几乎全部由噪声组成”
用户9077582
2021/10/11
3.5K0
Java四舍五入保留小数点后几位
银行家算法: 四舍:舍弃的数值:0.000、0.001、0.002、0.003、0.004,因为是舍弃的,对银行家来说,就不用付款给储户了,那每舍弃一个数字就会赚取相应的金额:0.000、0.001、0.002、0.003、0.004。 五入:进位的数值:0.005、0.006、0.007、0.008、0.009,因为是进位,对银行家来说,每进一位就会多付款给储户,也就是亏损了,那亏损部分就是其对应的10进制补数:0.005、0.004、0.003、0.002、0.001。 因为舍弃和进位的数字是在0到9之间均匀分布的,所以对于银行家来说,每10笔存款的利息因采用四舍五入而获得的盈利是:
全栈程序员站长
2022/08/31
1.4K0
Java四舍五入保留小数点后几位
php 保留两位小数,不四舍五入
高久峰
2023/06/03
1.7K0
java保留两位小数不四舍五入_java截取两位小数
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
1.3K0
JAVA保留两位小数(四舍五入)「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
1.7K0
JAVA保留两位小数(四舍五入)「建议收藏」
Java之float取2位小数,末位四舍五入
JAVA如何把一个float四舍五入到小数点后2位,4位,或者其它指定位数. 以前以为很容易,一直没在意,今天突然用到了,才发现,系统没有这样的函数.狂晕,同事们用的方法为,先转成String,再取其中几位,再转成float型,(如:String.valueOf(c).substring(0,String.valueOf(c).indexOf(".") + 3)):
IT工作者
2022/03/30
2K0
恶心的0.5四舍五入问题
四舍五入是财务类应用中常见的需求,按中国人的财务习惯,遇到0.5统一向上进位,但是c#与java中默认的却不是这样。 见c#代码: 1 static void Main(string[] args) 2 { 3 Decimal d = 301353.05M; 4 Console.WriteLine(d);//301353.05 5 Console.WriteLine(Math.Round(d, 1));/
菩提树下的杨过
2018/01/19
1.3K0
Python保留小数的方法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/169776.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/21
2.6K0

相似问题

python小数四舍五入问题

114

Python大小数四舍五入问题

19

小数四舍五入的问题

12

MySQL小数四舍五入问题

20

KendoNumericTextBox小数四舍五入问题

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文