正则表达式空格字符

拉罗奥塞哈

我有这个正则表达式: ^[a-zA-Z]\s{3,16}$

我想要的是将任何名称与任何空格匹配,例如,John Smith 并且包含 3 到 16 个字符长..

我究竟做错了什么?

摩尔

背景

这里有几点需要注意。首先,量词(在本例中为{3,16})仅适用于最后一个正则表达式标记。因此,您当前的正则表达式真正要表达的是“匹配具有单个字母字符(不区分大小写)后跟 3 到 16 个空白字符(例如空格、制表符等)的任何字符串。”

其次,一个名字可以有两个以上的部分(中间名、某些民族名称,如“De La Cruz”)或包含特殊字符,如重音元音。您应该考虑这是否是您需要在程序中考虑的事情。这些事情很重要,在任何实际应用中都应该考虑

假设和答案

现在,让我们假设您只需要由名字、姓氏和空格组成的名称的特定格式。我们还假设您只需要简单的 ASCII 字符(即没有特殊字符或重音字符)。此外,名字和姓氏都应以大写字符开头,后跟小写字符。除此之外,对名称各个部分的长度没有限制。在这种情况下,以下正则表达式可以解决问题:

^(?=.{3,16}$)[A-Z][a-z]+ [A-Z][a-z]+$

笔记

^字符后的第一个标记称为正向前瞻基本上,积极向前看将匹配开始(?=和结束之间的正则表达式,)无需实际移动与字符串匹配的光标位置。

请注意,我删除了\s令牌,因为您通常只需要一个(空格)。\s如果需要制表符和其他空格,则可以用标记替换该空格。

我还添加了一个限制,即名称必须以大写字母开头,后跟小写字母。

粗略的英语翻译

为了帮助您理解,这里是正则表达式真正作用的简单英文翻译。斜体部分只是从正则表达式的英文翻译的第一部分复制而来。

“匹配任何包含 3-16 个字符并以大写字母字符开头,后跟一个或多个 ( +) 字母字符后跟单个空格后跟一个大写字母字符后跟一个或多个 ( +) 字母字符并以任何字符结尾的字符串小写字母。”

工具

当我尝试解决具有挑战性的正则表达式时,我喜欢使用一些工具。它们在下面没有特定的顺序列出:

编辑/更新

您在评论中提到您在 JavaScript 中使用正则表达式。JavaScript 在正则表达式周围使用正斜杠来确定什么是正则表达式。对于这个简单的情况,有 2 个选项可以使用正则表达式来匹配字符串。

首先使用String的match方法如下

"John Smith".match(/^(?=.{3,16}$)[A-Z][a-z]+ [A-Z][a-z]+$/);

其次,创建一个正则表达式并使用它的test()方法。例如,

/^(?=.{3,16}$)[A-Z][a-z]+ [A-Z][a-z]+$/.test("John Smith");

后者可能是您想要的,因为它只是返回truefalse取决于正则表达式是否实际匹配字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式匹配任何字符,包括空格

来自分类Dev

正则表达式中字符周围的多余空格

来自分类Dev

在字符正则表达式之间插入空格

来自分类Dev

正则表达式可能的空格和结尾字符

来自分类Dev

JavaScript正则表达式-字符之间的空格?

来自分类Dev

字符范围和空格的正则表达式

来自分类Dev

正则表达式匹配以空格字符开头的行

来自分类Dev

正则表达式 - 被字母或空格包围的特殊字符

来自分类Dev

用空格替换固定字符的正则表达式

来自分类Dev

正则表达式后视忽略空格字符

来自分类Dev

Laravel正则表达式空格

来自分类Dev

空格贪婪正则表达式

来自分类Dev

正则表达式的空格数

来自分类Dev

仅在字符正则表达式之前匹配空格,并用破折号替换空格

来自分类Dev

正则表达式在空格上匹配-排除多组字符之间的空格

来自分类Dev

正则表达式:仅在字符串前无空格或空格时开始

来自分类Dev

正则表达式在空格上匹配-排除多组字符之间的空格

来自分类Dev

正则表达式仅用于空格,不用于字符之间的空格?

来自分类Dev

正则表达式删除字符之间的空格但忽略开头的空格

来自分类Dev

正则表达式,用于2个空格字符之间的表达

来自分类Dev

Java字符串用单词,空格和特殊字符分隔正则表达式

来自分类Dev

正则表达式检查包含空格和特殊字符的字符串

来自分类Dev

复杂的正则表达式-字母数字,连字符-空格-连字符,+和++

来自分类Dev

正则表达式:替换除特定字符和空格外的其他字符

来自分类Dev

正则表达式-如何识别字符串+空格+字符串

来自分类Dev

正则表达式以允许在特定字符串的字符之间留有空格

来自分类Dev

提取空格和字符串之间字符的正则表达式

来自分类Dev

缩短正则表达式任何字符,包括空格、字母、特殊字符和 unicode

来自分类Dev

正则表达式捕获“-”字符

Related 相关文章

  1. 1

    正则表达式匹配任何字符,包括空格

  2. 2

    正则表达式中字符周围的多余空格

  3. 3

    在字符正则表达式之间插入空格

  4. 4

    正则表达式可能的空格和结尾字符

  5. 5

    JavaScript正则表达式-字符之间的空格?

  6. 6

    字符范围和空格的正则表达式

  7. 7

    正则表达式匹配以空格字符开头的行

  8. 8

    正则表达式 - 被字母或空格包围的特殊字符

  9. 9

    用空格替换固定字符的正则表达式

  10. 10

    正则表达式后视忽略空格字符

  11. 11

    Laravel正则表达式空格

  12. 12

    空格贪婪正则表达式

  13. 13

    正则表达式的空格数

  14. 14

    仅在字符正则表达式之前匹配空格,并用破折号替换空格

  15. 15

    正则表达式在空格上匹配-排除多组字符之间的空格

  16. 16

    正则表达式:仅在字符串前无空格或空格时开始

  17. 17

    正则表达式在空格上匹配-排除多组字符之间的空格

  18. 18

    正则表达式仅用于空格,不用于字符之间的空格?

  19. 19

    正则表达式删除字符之间的空格但忽略开头的空格

  20. 20

    正则表达式,用于2个空格字符之间的表达

  21. 21

    Java字符串用单词,空格和特殊字符分隔正则表达式

  22. 22

    正则表达式检查包含空格和特殊字符的字符串

  23. 23

    复杂的正则表达式-字母数字,连字符-空格-连字符,+和++

  24. 24

    正则表达式:替换除特定字符和空格外的其他字符

  25. 25

    正则表达式-如何识别字符串+空格+字符串

  26. 26

    正则表达式以允许在特定字符串的字符之间留有空格

  27. 27

    提取空格和字符串之间字符的正则表达式

  28. 28

    缩短正则表达式任何字符,包括空格、字母、特殊字符和 unicode

  29. 29

    正则表达式捕获“-”字符

热门标签

归档