查找/替换帕斯卡大小写,除非在前面加上特定字段(例如数据控制=")



在某些情况下,我有一个现有的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]+)*)

如果我找到了我想要额外忽略的东西的匹配,我就把它添加到列表中。感谢所有!

相关内容

  • 没有找到相关文章

最新更新