gpt4 book ai didi

java - 改进在行开头匹配 {m,n}|{m,}|{,n}|{n} 的正则表达式

转载 作者:行者123 更新时间:2023-12-01 16:01:27 25 4
gpt4 key购买 nike

需要一个正则表达式来匹配 {m,n}|{m,}|{,n}|{n} (其中 m 和 n 是整数),并且开头的符号之间有任意数量的空格的线。我想出了这个:

^({\s*\d+\s*,\s*\d+\s*}|{\s*,\s*\d+\s*}|{\s*\d+\s*,\s*}|{\s*\d+\s*})

虽然它确实有效,但我很好奇是否有办法让它更短。感谢您的投入。

更新:马克提出了一个很好的解决方案:^\{(\s*\d+\s*(,(\s*\d+\s*)?)?|,\s*\d+\s*)\}

最佳答案

您至少应该能够做到这一点(为简洁起见,暂时忽略空格):

"^\\{(\\d+(,(\\d+)?)?|,\\d+)\\}"

这捕获了第一个替代方案中除 {,n} 情况之外的所有情况。

重新添加空格:

"^\\{\\s*(\\d+(\\s*,(\\s*\\d+)?)?|,\\s*\\d+)\\s*\\}"

可能看起来并不短,但请记住,我正在正确地为 Java 转义一些东西,而你肯定不会。

关于java - 改进在行开头匹配 {m,n}|{m,}|{,n}|{n} 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com