Geçersiz regex deseni (RE0001)
Özellik | Değer |
---|---|
Kural Kimliği | RE0001 |
Başlık | Geçersiz regex deseni |
Kategori | Stil |
Alt kategori | Yok |
Geçerli diller | C#, Visual Basic |
Seçenekler | Seçenekler bölümüne bakın. |
Genel bakış
Bu kural, normal ifade içeren değişmez değer dizesinin gerekli söz dizimine uymadığı yerleri işaretler. Kural, veya gibi //lang=regex
//lang=regex,strict
regex dizesinin önüne satır içi açıklama veya açıklama eklenmesiyle belirlenen, tanımlanan normal ifade için geçerlidir. İkinci açıklama, regex yorumlaması için katı modu kullanır.
Bu kural yalnızca IDE'dir ve komut satırı senaryoları için geçerli değildir.
Seçenekler
Seçenekler, kuralın zorlamasını istediğiniz davranışı belirtir.
Regex olarak tanınan kod için, Araçlar>Seçenekler>Metin Düzenleyicisi>C# | Visual Basic>Gelişmiş'i seçerek Visual Studio'daki seçenekleri ayarlarsınız. Normal İfadeler bölümünde aşağıdaki seçenekler kullanılabilir:
Özellik | Açıklama |
---|---|
Normal ifadeleri renklendirme | Normal ifadelerin renklendirilip renklendirmeyeceğini belirtir. |
Geçersiz normal ifadeleri bildirme | Geçersiz normal ifadelerin raporlanıp rapor edilmeyeceğini belirtir. |
İmleç altında ilgili bileşenleri vurgulama | Hızlı Eylemler'in vurgulama kullanıp kullanmadığını belirtir. |
Tamamlanma listesini göster | IntelliSense kod tamamlamanın gösterilip gösterilmeyeceğini belirtir. |
Örnek
Aşağıdaki kod parçacığında geçersiz normal ifadeye sahip bir örnek gösterilmektedir.
// Code with violations
// lang=regex
string pattern = @"\b[M]\w+\";
// Fixed code
// lang=regex
string pattern = @"\b[M]\w+";
Uyarıyı gizleme
Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.
#pragma warning disable RE0001
// The code that's violating the rule is on this line.
#pragma warning restore RE0001
Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini none
olarak ayarlayın.
[*.{cs,vb}]
dotnet_diagnostic.RE0001.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.