Java/Scala 正则表达式:移动字符串中括号中的数字

Java/Scala Regex: Move number in parentheses in string

如何捕获数字(在以下情况下为 250)并将其插入替换字符串?

我有:"CHAR () FOR BIT DATA(250) NOT NULL"

我想要的:"CHAR (250) FOR BIT DATA NOT NULL"

我想在 Scala 中做这个,但我想它只是使用 java.util.regex.

这是我尝试过的方法:

"""CHAR () FOR BIT DATA(250) NOT NULL""".replaceAll("CHAR \(\) FOR BIT DATA\(([0-9]+)\)", "Here is the string: [=14=]")

我只是不知道如何只获取数字以将它们重新插入到新字符串中。

您可以使用

.replaceAll("""(CHAR \()(\) FOR BIT DATA)\((\d+)\)""", "")

regex demo

详情

  • (CHAR \() - 第 1 组 (</code>):<code>CHAR ( 文本
  • (\) FOR BIT DATA) - 第 2 组 (</code>):<code>) FOR BIT DATA 文本
  • \( - 一个 ( 字符
  • (\d+) - 第 3 组 (</code>):一位或多位数字</li> <li><code>\) - 一个 ) 字符。