公司名称变化的RegEx

  • 本文关键字:RegEx 变化 公司 regex
  • 更新时间 :
  • 英文 :


我有一个要求,只接受满足以下条件的字符串值:

1)如果需要,可以用特殊字符开头
2)必须以大写字母开头(即使第一个字符是特殊字符)
3)字符串值一行中不能有2个特殊字符(连续)
4)字符串值一行不能有2个空格(连续)
允许使用重音字符(例如:Faddas)
6)字符串开头或结尾的封闭值是有效的,但必须在括号内(即:(Ltd))
7)在字符串值

的任何地方都允许使用数字

我有以下正则表达式值:^((([^)]+)))?[@#$%&*()-_+][';:?.,!]?p{Lu}+[s'-]?p{L}+(?:[s'-]p{L}+)+((([^)]+)))*$

对于以下测试值可以正常工作:
East-Shipping-ltd
East-Shipping(有限公司)

但是下一个例子失败了:
东- 123运输(有限公司)

有没有办法在字符串中间放数字?
我尝试了[0-9]变化,[A-Za-z09]变化和p{N}变化,但无济于事。

感谢您的宝贵时间。

这是一个真的讨厌的模式,但我能够简化它一点,并做你想做的:

^((([^)]+)))?[[:punct:]]?p{Lu}+(?:[s'-]?[p{L}d]+)+((([^)]+)))*$
有很多有用的速记字符类,包括[[:punct:]],我用它来代替你的大量标点字符类。为了添加包含数字的能力,我将p{L}放入具有d标记的字符类中,该标记将匹配任何数字(在任何语言中,使用Unicode标志)。

Regex101演示

这里我们有一些可以作为公司名称的字符

^[0-9A-Za-zÀ-ÿs,._+;()*~'#@!?&-]+$

最新更新