在某些情况下,我有一个现有的RegEx来匹配PascalCase:
([^w<->s])([A-Z][a-z]+)((?:[A-Z][a-z]+)*)
我正在寻找一种方法,当这些组由data-control=
或name=
或id=
前缀时不匹配。
示例输入:
<input data-control="Phone2" ng-model="UserInformation.Phone2">
所期望的输出:我想匹配userinformation, phone2;在"Phone2"在数据控制。
Regex101小提琴
感谢@0x263A在评论中建议使用负面向后看(我只是在看前瞻
在他们的帮助下,我想出了一个解决方案,通过列表类型格式取消某些匹配(在这种情况下,如果前面有data-control=、id=或name=,则不匹配):
(?<!data-control=)(?<!id=)(?<!name=)([^w<->s])([A-Z][a-z]+)((?:[A-Z][a-z]+)*)
如果我找到了我想要额外忽略的东西的匹配,我就把它添加到列表中。感谢所有!