Regex 保留前3个字符并删除其余字符的正则表达式

Regex 保留前3个字符并删除其余字符的正则表达式,regex,regular-language,Regex,Regular Language,我有一个包含字母、数字和破折号的标识符。 我想做的是保留第一个破折号前的前3个字母,删除其余字母,然后保留第一个破折号后的前2个字母 例如,我有以下id: 9D3236A9-B496-4597-87E4-3A3FB69D07BF 输出ID应为:9D3B445873A3 我试过: ^.{3}\- 但什么也没发生。你能帮个忙吗?你可以使用本文给出的正则表达式 你可以用 ^([A-Za-z0-9]{3})[A-Za-z0-9]*|-([A-Za-z0-9]{3})[A-Za-z0-9]*$|-([

我有一个包含字母、数字和破折号的标识符。 我想做的是保留第一个破折号前的前3个字母,删除其余字母,然后保留第一个破折号后的前2个字母

例如,我有以下id:

9D3236A9-B496-4597-87E4-3A3FB69D07BF
输出ID应为:
9D3B445873A3

我试过:

^.{3}\-

但什么也没发生。你能帮个忙吗?

你可以使用本文给出的正则表达式

你可以用

^([A-Za-z0-9]{3})[A-Za-z0-9]*|-([A-Za-z0-9]{3})[A-Za-z0-9]*$|-([A-Za-z0-9]{2})[A-Za-z0-9]*
替换为
$1$2$3
。看

详细信息

  • ^
    -字符串的开头
    • ([A-Za-z0-9]{3})
      -第1组(
      $1
      在替换中):3个字母数字字符
    • [A-Za-z0-9]*
      -0+字母数字
  • |
    -或
    • -
      -连字符
    • ([A-Za-z0-9]{3})
      -第2组(
      $2
      在替换中):3个字母数字字符
    • [A-Za-z0-9]*
      -0+字母数字
    • $
      -字符串结尾
  • |
    • -
      -连字符
    • ([A-Za-z0-9]{2})
      -第3组(
      $3
      在替换中):2个字母数字字符
    • [A-Za-z0-9]*
      -0+字母数字

您在最新部分保留了三封信
3A3
。这是你的欲望输出的一部分吗?它可能看起来像。或者类似的。或嗯,你(没有破折号)的评论不清楚。如果您需要
9D3B445873A3
,请说明您需要此输出。@WiktorStribiż。我需要的正是你给我的正则表达式,但输出不应该有任何破折号。这应该正是你在最后一行中提到的。(9D3B445873A3)您认为您也可以为此提供正则表达式吗?因此,使用
^([A-Za-z0-9]{3})[A-Za-z0-9]*|-([A-Za-z0-9]{3})[A-Za-z0-9]*$|-([A-Za-z0-9]{2})[A-Za-z0-9]*