gpt4 book ai didi

java - 如何将字符串拆分为两个考虑字符串末尾的数字(在方括号内)

转载 作者:行者123 更新时间:2023-12-04 02:26:55 28 4
gpt4 key购买 nike

我需要使用正则表达式使用给定的分隔符将字符串分成两部分。示例字符串和预期输出如下

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

RegEx Demo

Java 代码:

String repl = str.replaceFirst("^(.*)\\[(\\d+)\\]", "$1, $2");

正则表达式解释:

  • ^:开始
  • (.*):贪婪地匹配捕获组 #1 中的 0 个或多个字符
  • \[:匹配一个[
  • (\d+):匹配捕获组 #2 中的 1 个或多个数字
  • \]:匹配一个]

关于java - 如何将字符串拆分为两个考虑字符串末尾的数字(在方括号内),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66812816/

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