reg*_*tml 8 regex case-sensitive case-insensitive
感谢我以前的作业问题的帮助Regex to match tags like <A>, <BB>, <CCC> but not <ABC>,但现在我有另一个功课问题.
我需要匹配标签<LOL>,<LOLOLOL>(3个大写字母,最后两个字母可重复),但不是<lol>(需要大写).
使用以前的作业技术,我试过<[A-Z]([A-Z][A-Z])\1*>.这是有效的,除了还有一个额外的问题:重复部分可以是大小写混合!
所以我还需要匹配<LOLolol>,<LOLOLOlol>因为它是3个大写字母,在大小写混合的情况下可重复的最后两个字母.我知道你可以创建一个不区分大小写的模式/i,这将让我与我<LOLolol>的正则表达式匹配,但它现在也匹配<lololol>,因为前3个字母的检查也不区分大小写.
那我该怎么做?如何敏感地检查前三个字母,然后其他字母不区分大小写?正则表达式可以实现吗?
是! 事实上,您可以使用所谓的嵌入式修改器以某种方式执行此操作.这将修改器放在模式中,您可以基本上选择修改器应用于模式的哪些部分.
用于区分大小写的嵌入式修饰符是(?i),因此在这种情况下您需要的模式是:
<[A-Z]([A-Z]{2})(?i:\1*)>
Run Code Online (Sandbox Code Playgroud)
/regex/i,你也可以做/(?i)regex//first(?i)second(?-i)third//first(?i:second)third/