C# 正则表达式允许和禁止特定字符
我有一个C# 正则表达式允许和禁止特定字符,c#,regex,string,C#,Regex,String,我有一个正则表达式,如下所示: RegularExpression(@"^[a-zA-Z]+[ a-zA-Z-]*$", ... 有没有办法禁止双空格、双破折号和破折号空格/空格破折号序列?我还需要检查最后一个字符是否为字母数字 textOK 文本文本正常 文本文本正常 text--text不正常 文本文本不正常 text-text不正常 text-text不正常 text不正常 -文本不正常 text-不正常 text不正常 谢谢大家,我很感激任何提示。将正则表达式更改为 ^[a-zA-Z]
正则表达式
,如下所示:
RegularExpression(@"^[a-zA-Z]+[ a-zA-Z-]*$", ...
有没有办法禁止双空格、双破折号和破折号空格/空格破折号序列?我还需要检查最后一个字符是否为字母数字
text
OK
文本文本
正常
文本文本
正常
text--text
不正常
文本文本
不正常
text-text
不正常
text-text
不正常
text
不正常
-文本
不正常
text-
不正常
text
不正常
谢谢大家,我很感激任何提示。将正则表达式更改为
^[a-zA-Z]+(?:[ -][a-zA-Z]+)?$
见
详细信息:
-字符串的开头^
-1个或多个ASCII字母[a-zA-Z]+
-一个或零个序列:(?:[-][a-zA-Z]+)?
-空格或[-]
-
-1个或多个ASCII字母[a-zA-Z]+
-字符串结束$
- 如果您只需要匹配任何Unicode字母,请将我的模式中的
替换为[a-zA-Z]
李>\p{L}
- 要检查字符串在C#中是否有效,请使用
var valid=Regex.IsMatch(s,@“^\p{L}+(?:[-]\p{L}+?$”代码>李>
^\p{L}+(?:[ -]\p{L}+)?$
请参见要检查最后一个字符是否为字母数字,您可以执行以下操作:
char.IsLetterOrDigit(str.last())
或char.IsLetterOrDigit(str,str.Length-1)
。仔细想想,您为什么想知道这一点?@Wiktor Stribiżew的答案提出的正则表达式最后只接受一个字符。再次感谢先生,您的答案正是我所需要的。