-1

我需要一个用于 c# 格式的正则表达式

    <abc>-<1wee>-<qwje>-<#>-<weruyu>-<...>-<suidyw>-<xdsljd23>-

我写了一个格式的正则表达式

     Regex r1 = new Regex("(^(<{1}([a-zA-Z0-9]*|[#]|[.]{3})>-{1})*$)", RegexOptions.IgnoreCase | RegexOptions.Singleline);

这在所有情况下都可以正常工作,除了 1. 当 < 和 > 之间没有字符时,例如

   <>-<agdf>-

2.当任何一对字母数字字符出现在<#> 和<...> 之后,例如

   <abc>-efgh>-<123>-<#>-<...>-

这工作正常,但

    <abc>-<#>-<123>-<...>-

不管用

4

1 回答 1

1
  1. 这部分:

    [a-zA-Z0-9]*

    也匹配 0 个字符。您可能打算使用+

  2. 您的表达式说字符串必须以 a 结尾-,这就是后面的示例不起作用的原因。尝试(-|$)使最后一个破折号可选。

于 2013-03-26T07:54:03.897 回答