c# - 正则表达式允许字母,单词之间有一个空格,总长度为 50

标签 c# regex

我正在尝试构建具有以下条件的正则表达式:

  • 只有字母
  • 单词之间一个空格(不超过一个空格)
  • 最大长度 50

这就是我到目前为止所做的:

^(([A-Za-z]+( [A-Za-z])+){1,50})$

这允许我验证单词之间的空格和仅字母条件,但它不适用于长度,也不适用于没有空格的单词,例如:hello。有人可以帮我解决这个问题吗?

例子:

我需要: 允许像这样的句子(最大长度为 50)的正则表达式:

Hello this is an example
Hello
a b c

最佳答案

试试这个:

^\b(?!.*?\s{2})[A-Za-z ]{1,50}\b$

Demo

[A-Za-z ]{1,50} 将检查字符和长度,而否定前瞻 (?!.*?\s{2}) 将检查空格条件。 (\b) 禁止末尾有空格。

关于c# - 正则表达式允许字母,单词之间有一个空格,总长度为 50,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26142059/

相关文章:

javascript - 如何使用 javascript 识别字符串中存在的特定模式?

java - 正则表达式,匹配不带 "http://"和任何其他 "/"的url

php - php 中的 preg_split 在数字前面和字母或空格后面的点处拆分字符串

c# - 我如何查看我的响应式扩展查询在做什么?

c# - 对调度程序和异步感到困惑

c# - 调用方法会降低性能吗?

Java 搜索模式正则表达式样式

ruby - GitHub 喜欢搜索正则表达式

c# - 为什么 C# 允许将匿名对象分配给属于类类型的类字段?

c# - 检查当前用户是否是事件目录组的成员