部分正则表达式不区分大小写?

 mobiledu2502915233 发布于 2023-02-08 13:59

我有一个正则表达式,正则表达式的一部分应该不区分大小写.

例:

/Guest post by ([A-Z][a-z]+\s[A-Z][a-z]+)/

"来宾帖子"应该不区分大小写,但下半部分显然需要区分大小写,因为它正在寻找名字+姓氏,每个字母大写第一个字母.

所以,如果我这样做

/Guest post by ([A-Z][a-z]+\s[A-Z][a-z]+)/i

它不会起作用,因为现在它会匹配诸如"小狗的客人帖子"这样的东西,我不想要.

但是,它需要与"布莱恩威廉姆斯的宾客游戏"相匹配.

1 个回答
  • 使用不区分大小写的修饰符模式:

    (?i:)
    

    在你的情况下:

    (?i:Guest post by )([A-Z][a-z]+\s[A-Z][a-z]+)
    

    工作示例:http://regex101.com/r/pW1gV9

    或者(感谢@robertodecumex!)您可以使用修饰符范围,如果您想从捕获中排除结果,这将非常方便.

    (?i)Guest post by(?-i) ([A-Z][a-z]+\s[A-Z][a-z]+)
    

    2023-02-08 14:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有