正则表达式不正常

时间:2013-03-26 07:49:39

标签: c# .net regex

我需要c#

格式的正则表达式
    <abc>-<1wee>-<qwje>-<#>-<weruyu>-<...>-<suidyw>-<xdsljd23>-

我写了格式

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

这在所有情况下都可以正常工作 1.当&lt; 1之间没有字符时和&gt; 例如

   <>-<agdf>-

2.当任何一对字母数字字符出现在&lt;#&gt;之后和&lt; ...&GT; 例如

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

这很好用 但

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

无效

1 个答案:

答案 0 :(得分:1)

  1. 这部分:

    [A-ZA-Z0-9] *

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

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