4

Visual Studio でタブをグループ化するために、Tabs Studioを使用しています。使用した規則を使用してタブをグループ化するための正しい正規表現を見つけるのに苦労しています。

2 つの名前付き後方参照を使用して動作します。一致するタブをグループ<Name>化し、異なる を選択できるようにします<Ext>。問題は、ここにグループ化したいファイルがあることです:

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

ここまでで、最初の 3 つと最後の 2 つを 2 つの別々のグループに一致させる式を取得しました。

(?<Name>(.*[/\\])?.+?)(?<Ext>(ViewModel|Controller)?\..+)

問題は、後方参照の出力を操作することです。とにかく、比較では大文字と小文字が区別されないため、実際に行う必要があるのは-、後方参照出力から を削除することだけです。これは可能ですか?

注: これを StackOverflow に置いたのは、本質的には RegEx の質問であるためです。ただし、私にとっての目的は非常に具体的です。私はこれについてあまり自信がありませんので、これがどこかに属していると思われる場合はお知らせください。

4

2 に答える 2

1

アドオン内でこれを行う方法があるかどうかを尋ねるために、TabsStudio のサポートにメールを送りました。驚いたことに、数通のメールの後、彼らはこの機能を実装しました! 2013 年 10 月 28 日にリリースされたv3.1.5以降で可能です。

この新機能により、同じ名前の複数のキャプチャ グループを 1 つの文字列に連結できます。

私の表現:

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

説明:

  1. (?<Path>(.*[/\\])*)(?<Ext>_?)(?<Name>.+)(?<Ext>\.cshtml)|

    • _UserProfile.cshtml
    • UserProfile.cshtml

      私のRazorビューと一致します。部分ビューとレイアウトの前にアンダースコアを付けます。Index.cshtmlここではパスを省略します。これは、あいまいだといつも思っていたので、自分の見解を呼び出さない傾向があるためです。

  2. (?<Name>.+?)(?<Ext>(ViewModel|Model|Controller|Helper|Utilities)?\.cs)|

    • UserProfileController.cs
    • UserProfileViewModel.cs
    • UserProfileUtilities.cs

      C# コード ファイルのさまざまなサフィックスに一致します。Wrapperもちろん、これは、Extensions、などの他のものを含むように拡張できますFactory

  3. (?<Ext>_?)((?<Name>.+)-)*(?<Name>.*)(?<Ext>(\.min)?\.(js|less|css))|

    • user-profile.js
    • ユーザープロファイル.min.css
    • _user-profile.less

      スタイルとスクリプトに一致します。.less直接要求されないファイルの前にアンダースコアを使用するため( _mixins.less.

  4. (?<Name>(.*[/\\])?.+?)(?<Ext>\..+)

    • UserProfile.resx

      一般的なフォールバック正規表現。これは TabsStudio のデフォルトです。

これが誰かに役立つことを願っています!

于 2013-10-30T14:48:12.547 に答える
0

タブ スタジオについてはわかりません。RegEx についてしか知りません。

ファイル名に常に「-」が 1 つしかない場合 ファイル名を 2 つの部分に分けることができます。

正規表現は次のようになります

(?<Name1>([^-]*[/\\])?[^-]+?)-?(?<Name2>[^-]+?)(?<Ext>(ViewModel|Controller)?\..+)

ファイル名の「-」を削除するには、後方参照は次のようになります。

${Name1}${Name2}${Ext}
于 2013-10-22T19:53:27.987 に答える