c# - C# 正则表达式 - 排除文本开头和结尾的下划线和空格
问题描述
我一直在努力让这个正则表达式起作用。我希望表达式在字符串的开头或结尾包含空格时显示错误(允许中间有空格)。另外我想排除下划线和连字符。
这就是我到目前为止所拥有的。
[RegularExpression(@"^.*\s*[-_]", ErrorMessage = "string cannot begin with or end with a space, or contain a hyphen or underscore")]
这没有按预期工作,有人知道我缺少什么才能让它工作吗?
解决方案
您可以使用
[RegularExpression(@"^[^\s_-]+(?:\s+[^\s_-]+)*$", ErrorMessage = "string cannot begin with or end with a space, or contain a hyphen or underscore")]
细节
^
- 字符串的开始[^\s_-]+
- 除空格外的一个或多个字符,_
以及-
(?:\s+[^\s_-]+)*
- 零次或多次重复:\s+
- 一个或多个空格[^\s_-]+
- 除空格外的一个或多个字符,_
以及-
$
- 字符串结束。
请参阅正则表达式演示。
推荐阅读
- javascript - 选中或取消选中复选框中的问题
- angular - 动态更改提供者
- pdf - Azure ML 决策树可视化下载
- javascript - 如何使用 gtag 在 Google Analytics 中跟踪 utm_source?
- sql - 使用 Objection.js 插入一组 UUID
- java - Kafka Java客户端处理连接,服务器问题
- python-3.x - 文件“quickstart.py”,第 9 行,在
- java - 是否可以在包含目标 + 连接字段的子类上使用 @JoinTable?
- java - 除了缓存指令之外,解释器生成的本机代码和 JIT 之间有什么区别吗?
- java - 活动在使用共享元素转换后闪烁