如何在正则表达式中只允许一个连字符(-)、一个空格()和一个撇号(')

How do I allow only one hyphen (-),only one space( ),only one apostrophe (') in a regular expression

本文关键字:一个 空格 正则表达式 许一个 连字符      更新时间:2023-09-26

我有一个文本框,我得到用户的姓氏。如何在正则表达式

中只允许一个连字符(-)、一个空格()和一个撇号(')?

你可以对你想要避免的3个字符中的每一个使用负向前看:

^(?!.*-.*-.*)(?!.*'.*'.*)(?!.*'s.*'s.*)[a-zA-Z- ']+$

我不确定你是否需要一个正则表达式(除非你特别需要连字符、空格和撇号在你没有指定的字符串中的特定位置)。

只需要一个字符一个字符地遍历字符串,并计算连字符、空格和撇号。

正则表达式对于匹配字符模式很好,并且可以非常强大,但在某些情况下,它们不仅是过度的,而且可能是错误的工具。