gpt4 book ai didi

.net - 正则表达式反向引用对于输入 : 'UserProfile' and 'user-profile' 是相等的

转载 作者:行者123 更新时间:2023-12-01 00:56:40 26 4
gpt4 key购买 nike

我正在使用 Tabs Studio在 Visual Studio 中对我的选项卡进行分组。我很难找到正确的正则表达式来使用我使用的约定对我的选项卡进行分组。

它使用两个命名的反向引用工作。它将具有匹配 <Name> 的选项卡分组并允许您选择不同的 <Ext> .问题是,这里是我想要分组的文件:

  • UserProfileController.cs
  • UserProfileViewModel.cs
  • UserProfile.cshtml
  • user-profile.js
  • user-profile.less

  • 到目前为止,我已经得到了一个将前 3 个和最后 2 个匹配成两个独立组的表达式。
    (?<Name>(.*[/\\])?.+?)(?<Ext>(ViewModel|Controller)?\..+)

    问题是操纵反向引用的输出。无论如何,比较是不区分大小写的,所以我真正需要做的就是删除 -从反向引用输出。这可能吗?

    注意:我已经把它放在 StackOverflow 上,因为它的核心是一个 RegEx 问题,尽管它对我来说的目的非常具体。我对此不太有信心,所以如果您认为这属于其他地方,请告诉我。

    最佳答案

    我通过电子邮件向 TabsStudio 的支持人员发送电子邮件,询问是否有办法在插件中执行此操作。令我惊讶的是,在收到几封电子邮件后,他们实现了此功能!从 起是可能的v3.1.5 , 发布 2013 年 10 月 28 日 .

    新功能允许将多个具有相同名称的捕获组连接成一个字符串。

    我的表达:

    (?<Path>(.*[/\\])*)(?<Ext>_?)(?<Name>.+)(?<Ext>\.cshtml)|(?<Name>.+?)(?<Ext>(ViewModel|Model|Controller|Helper|Utilities)?\.cs)|(?<Ext>_?)((?<Name>.+)-)*(?<Name>.*)(?<Ext>(\.min)?\.(js|less|css))|(?<Name>(.*[/\\])?.+?)(?<Ext>\..+)

    解释:
  • (?<Path>(.*[/\\])*)(?<Ext>_?)(?<Name>.+)(?<Ext>\.cshtml)|
  • _UserProfile.cshtml
  • 用户文件.cshtml

    符合我的 Razor 观点。我用下划线作为我的部分 View 和布局的前缀。我省略了这里的路径,因为我倾向于不调用我的观点 Index.cshtml因为我一直认为这是模棱两可的。
  • (?<Name>.+?)(?<Ext>(ViewModel|Model|Controller|Helper|Utilities)?\.cs)|
  • UserProfileController.cs
  • UserProfileViewModel.cs
  • UserProfileUtilities.cs

    匹配 C# 代码文件的各种后缀。这当然可以扩展到包括其他人,例如 Wrapper , Extensions , Factory
  • (?<Ext>_?)((?<Name>.+)-)*(?<Name>.*)(?<Ext>(\.min)?\.(js|less|css))|
  • user-profile.js
  • user-profile.min.css
  • _user-profile.less

    匹配样式和脚本。下划线被添加到扩展名之前,因为我用它来前缀任何 .less从不直接请求的文件(例如 _mixins.less )。
  • (?<Name>(.*[/\\])?.+?)(?<Ext>\..+)
  • 用户配置文件.resx

    一般的后备正则表达式。这是 TabsStudio 中的默认设置。

  • 我希望这可以帮助别人!

    关于.net - 正则表达式反向引用对于输入 : 'UserProfile' and 'user-profile' 是相等的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19513960/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com