正则表达式匹配字符串中的多个空格/破折号


Regex matching multiple spaces/dashes in String

我有一个必须大写(unicode支持)的输入,并且可以包含多个空格或破折号-(并且应该以字母开始和结束)。

我做了这个正则表达式:/^['p{Lu}]+'s*-*['p{Lu}]+$/

如这里所见,这符合我需要的一切,除非它包含多个破折号或空格(ABC DEFABC-DEF工作,但AB-CD-EFAB CD EF不工作)。

我还是一个初学者,所以请原谅我:)

提前感谢,

Coloco

^['p{Lu}]+(?:'s*-*['p{Lu}]+)+$
          ^^               ^^

试试这个。看到演示。使组接受1或以上

https://regex101.com/r/yW3oJ9/7