Regex 将特定数字与正则表达式匹配

Regex 将特定数字与正则表达式匹配,regex,Regex,我有这样的台词: 1. 1-1-2-3-4-5-92-6-7-21-42-66 \54 2. 1-1-2-3-4-22-5-6-7-21-42-66 \2 ... 与regex\b(2)\b匹配: 1-13-2-3-4-5-21-60-71-21-42-66\54 2。1-1-2-3-4-22-5-6-7-21-42-66\2 但我只需要匹配: 1-13-2-3-4-5-21-60-71-21-42-66\54 1-1-2-3-4-22-5-6-7-21-42-66\2 如果可能,如何使用re

我有这样的台词:

1. 1-1-2-3-4-5-92-6-7-21-42-66 \54
2. 1-1-2-3-4-22-5-6-7-21-42-66 \2
...
与regex
\b(2)\b
匹配:

  • 1-13-2-3-4-5-21-60-71-21-42-66\54
  • 2。1-1-2-3-4-22-5-6-7-21-42-66\2

    但我只需要匹配:

  • 1-13-2-3-4-5-21-60-71-21-42-66\54
  • 1-1-2-3-4-22-5-6-7-21-42-66\2
  • 如果可能,如何使用regex执行此操作?

    您可以使用

    (?<![^-\s])2(?![^-\s])
    
    (?
    看

    详细信息

    • (?-如果前面有
      -
      以外的字符或空格,则会导致匹配失败的负查找
    • 2
      -文字
      2
      char
    • (?![^-\s])
      -如果在
      -
      2
      后面有字符以外的字符,则会导致匹配失败的负前瞻

    可能?或者?如果您的数字总是以“-”分隔,请使用
    -(2)
    。您使用的语言是什么?-(2)-与3.2-1-34-5或4.4-56-53-2不匹配,其中数字没有完全用“-”包装。实际上,没有更多细节-正则表达式风格,如何处理重叠匹配(例如
    1-2-2-3
    ),您是提取还是替换-很难提供答案。请尝试。因此,请测试。正如我所说的。如果您说明正则表达式的风格、您希望如何处理重叠匹配以及您正在执行的操作:提取或替换,则会更好。请参阅演示如何将
    2
    替换为
    9