【问题标题】:place a comma in front of the found REGEX (4 digits and a comma) in JAVA在 JAVA 中找到的 REGEX(4 位数字和一个逗号)前面放置一个逗号
【发布时间】:2017-01-23 10:21:14
【问题描述】:

我正在使用 Java 并尝试在 4 位数字的日期前设置逗号。示例:

普通字符串:

'El Burro' Van Rankin,Jorge,1964 年 6 月 5 日,空

我想要以下输出(在 1964 前面放置一个逗号):

'El Burro' Van Rankin,Jorge,5 June ,1964,NULL

这是我制作的正则表达式: line = line.replaceAll("(\\d{4},)", ",\1"); //如果它找到一个 4 位数字后跟一个逗号,用逗号替换它,然后是组 1 (1964,)

如果我运行它,我会得到以下输出:

'El Burro' Van Rankin,Jorge,6 月 5 日,空

它删除了整个 1964 年。我做错了什么?

【问题讨论】:

  • 你需要用$定义反向引用:line.replaceAll("(\\d{4},)", ",$1")。也许replaceAll("\\b\\d{4},", ",$0") 会更干净。
  • 谢谢,效果很好;d

标签: java regex regex-group


【解决方案1】:

替换字符串中有一个\1,而它应该是$1。这是我能看到的唯一问题。

line.replaceAll("(\\d{4},)", ",$1")

如果你想要更整洁的东西,甚至可以这样做:

replaceAll("\\b\\d{4},", ",$0")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多