【问题标题】:How to extract ABC and XZ from ABC XYZ?如何从 ABC XYZ 中提取 ABC 和 XZ?
【发布时间】:2020-07-27 17:16:33
【问题描述】:

我想从以下字符串中提取ABCXZ

  • ABC XYZ

我试过了:

  • (ABC) (X(?:Y)Z)

但它会提取ABCXYZ

【问题讨论】:

  • 不,这不能回答我的问题,我不喜欢这样结束我的问题。
  • 你确实有一个捕获组围绕非捕获组,所以它当然会显示在结果中......‽
  • 我需要从ABC XYZ中提取ABCXZ。所以是的,我需要从第二组中排除 Y,因此是嵌套的非捕获组。
  • (ABC) (X(?:Y)Z)
  • 单个组中不能有非连续字符。这是正则表达式的正常行为。从XYZ中提取XZ是不可能的,绝对没有办法做这样的工作。

标签: javascript regex


【解决方案1】:

我不确定这是否对您有帮助,但我注意到您添加了一个 javascript 标记。

如果您愿意,可以尝试以下正则表达式:https://regex101.com/r/JB3iNj/1

使用以下代码:

    var myString = "ABC XYZ";
    var myRegexp = /(ABC) (X)Y(Z)/g;
    match = myRegexp.exec(myString);
    var s1 = match[1]
    var s2 = (match[2] + match[3])
    console.log(s1 + " " + s2)

【讨论】:

  • 我知道这不是一个很好的答案,但不想让您觉得一切都丢失了。如果您告诉我们更多有关您的用例的信息,也许可以提供更好的帮助。
【解决方案2】:

我被告知这实际上是不可能的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    相关资源
    最近更新 更多