php正则表达式重复出现的相同字母,PHP正则表达式匹配带有全部大写字母的行与偶尔的连字符...

沿着(不要忘记Unicode正则表达式的“u”标志):

^(?:\*\*)?(?=[^*]{4,})(\p{Lu}+)(?:\s*-\s*(\p{Lu}+))?(?:\*\*)?\s*$

^ # start of line

(?:\*\*)? # two stars, optional

(?=[^*]{4,}) # followed by at least 4 non-star characters

(\p{Lu}+) # group 1, Unicode upper case letters

(?: # start no capture group

\s*-\s* # space*, dash, space*

(\p{Lu}+) # group 2, Inicode upper case letters

)? # end no capture group, make optional

(?:\*\*)? # two stars, optional

\s* # optional trailing spaces

$ # end of line

编辑:简化,根据评论:

^(?=[A-Z ]{4,})([A-Z ]+)(?:-([A-Z ]+))?\s*$

^ # start of line

(?=[A-Z -]{4,}) # followed by at least 4 upper case characters, spaces or dashes

([A-Z ]+) # group 1, upper case letters or space

(?: # start no capture group

- # a dash

([A-Z ]+) # group 2, upper case letters or space

)? # end no capture group, make optional

\s* # optional trailing spaces

$ # end of line

第1组和第2组的内容必须在使用前进行修剪。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值