我需要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>-<...>-
无效
答案 0 :(得分:1)
这部分:
[A-ZA-Z0-9] *
也匹配0个字符。您可能打算使用+
您的表达式表示字符串必须以-
终止,这就是后面的示例不起作用的原因。尝试(-|$)
使最后一个破折号可选。