我有RegularExpression
如下:
RegularExpression(@"^[a-zA-Z]+[ a-zA-Z-]*$", ...
有没有办法让它禁止双空格,双破折号和破折号空格/空格破折号序列?另外,我需要检查最后一个字符是否是字母数字。
text
好的
text-text
好的
text text
好的
text--text
不行
text text
不行
text- text
不行
text -text
不行
text
不行
-text
不行
text-
不行
text
不行
谢谢大家,我感谢任何提示。
答案 0 :(得分:1)
将正则表达式更改为
^[a-zA-Z]+(?:[ -][a-zA-Z]+)?$
请参阅regex demo
<强>详情:
^
- 字符串开头[a-zA-Z]+
- 一个或多个ASCII字母(?:[ -][a-zA-Z]+)?
- 一个或零个序列:
[ -]
- 空格或-
[a-zA-Z]+
- 一个或多个ASCII字母$
- 字符串结束。注:
[a-zA-Z]
替换为\p{L}
。 var valid = Regex.IsMatch(s, @"^\p{L}+(?:[ -]\p{L}+)?$");
。 因此,根据您发布的内容,您可以使用
^\p{L}+(?:[ -]\p{L}+)?$