作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用正则表达式使用给定的分隔符将字符串分成两部分。示例字符串和预期输出如下
testnames[3] ===> testnames,3
3alpha[0] ====> 3alpha, 0
beta[4]value[2] ===> beta[4]value, 2
gama4[23] ===> gama4, 23
tama[2334] ====> tama, 2334
tes[t[ ===> No matches
try[]t ===> No matches
如果输入字符串末尾的方括号内有数字,则每个字符串都应一分为二。
谁能告诉我一个正则表达式来做到这一点?
注意:我找到了正则表达式:"\[(-?\d+)\]$"
。但这只给了我方括号内的数字,没有给字符串的其余部分
最佳答案
您可以使用带有 2 个捕获组的贪心匹配替换:
正则表达式:
^(.*)\[(\d+)\]
替换:
$1, $2
Java 代码:
String repl = str.replaceFirst("^(.*)\\[(\\d+)\\]", "$1, $2");
正则表达式解释:
^
:开始(.*)
:贪婪地匹配捕获组 #1 中的 0 个或多个字符\[
:匹配一个[
(\d+)
:匹配捕获组 #2 中的 1 个或多个数字\]
:匹配一个]
关于java - 如何将字符串拆分为两个考虑字符串末尾的数字(在方括号内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66812816/
我是一名优秀的程序员,十分优秀!