正则表达式用正则表达式保持一或零

问题描述 投票:0回答:1

我想用replaceall和正则表达式将某些文本转换为其他文本。

我的文字如下:

这带有一些额外的约束xhiho,

这没有任何额外的限制hfdlh

现在我想要的结果是以下内容:

这是额外的--constraint xhiho

这没有多余的东西-约束hfdlh

因此,我需要在约束条件前加上2“-”,如果有“,”,则将其放在2“-”之前]

我尝试了以下代码:

oConvert = oConvert.replaceAll("constraint(.*)(,?)", "$2--constraint$1");

但是它不起作用,它没有在两个“-”前面加上“,”

java regex replaceall
1个回答
0
投票

您可以使用:

str = str.replaceAll("(\\h+constraint\\h+.+?)(,?)$", "$2 --$1");

RegEx Demo

RegEx详细信息:

  • (:开始捕获组#1
    • [\h+:匹配1个以上空白]
    • [constraint:匹配constraint
    • [\h+:匹配1个以上空白]
    • [.+?:匹配1个或多个字符(惰性匹配)] >>
  • ):捕获组#1的结尾
  • (:捕获组2的开始
    • ,?:匹配可选逗号
  • [):捕获组#2的结尾
  • $:比赛结束
  • © www.soinside.com 2019 - 2024. All rights reserved.