LazowskiAnton · Extensions

RegexSmith

Düzenli ifadeler, yazıldıkları yerde açıklanır ve test edilir. C#'ta bir desenin üzerine gelin: her parça için sade bir dille bir satır, renkli grupları ve eşleşen dizeler; takılabilecek desenlerin altı çizili görünür; kendi örneklerinizi RegexSmith Test Aracı'nda deneyin ve deseni tek tıklamayla koda geri yazın.

Ücretsiz · Visual Studio 2022 ve 2026 · 14 arayüz dili · telemetri yok

Neden RegexSmith

Bir [GeneratedRegex] deseninin üzerinde bilgi kartı: grupları renklendirilmiş desen, her parça için sade bir dille bir satır, eşleşen örnekler ve eşleşmeyen bir örnek, ve ✓ güvenli durumu

Sözdizimi dersi değil, sade bir dil

^(?<year>\d{4})-(?<id>\d{1,5})$ şuna dönüşür: “Metnin başı”, “Tam olarak 4 rakam”, “1 ile 5 arası rakam” — her parça için bir satır, kendi grubunun altında, her grup kendi renginde.

Gerçek motor tarafından denetlenir

Karttaki örnekler ve test aracındaki her sonuç, çağrının seçenekleriyle doğrudan .NET düzenli ifade motorundan gelir. Gördüğünüz, uygulamanızın yapacağı şeydir.

Takılabilecek desenler

([a-z0-9]+\.?)+ zararsız görünür, ama neredeyse eşleşen uzun bir dizede bir isteği dondurabilir. RegexSmith bu tür tekrarların altını çizer ve Ctrl+. ile düzeltir.

Ücretsiz, koşulsuz

Abonelik yok, “pro” sürüm yok, veri toplama yok, Çıktı penceresinde ya da başlangıçta mesaj yok. Desenler ve örnekler bilgisayarınızda kalır. Sizden isteyeceğimiz tek şey — bir süre kullandıktan sonra — Marketplace'te bir değerlendirme. Visual Studio 2022 ve 2026'da, x64 ve ARM64'te çalışır.

Özellikler

Bilgi kartı

Bir desenin dizesinin üzerine gelin; Visual Studio'nun olağan araç ipucuna bir RegexSmith kartı eklenir: desenin ne anlama geldiği, neyle eşleştiği ve güvenli olup olmadığı.

Bilgi kartı: tür ve seçenekleri gösteren başlık, grupları renklendirilmiş desen, grupların altına yerleşmiş her parça için bir satır, örnekler ve Deseni test et düğmesi

Nerede çalışır

C# dosyalarında, şunların deseni üzerinde:

Normal, birebir (@"…") ve ham ("""…""") dizeler derleyicinin okuduğu gibi okunur; bu yüzden "\\d" ve @"\d" aynı desendir.

Kart neyi gösterir

EkrandaAnlamı
RegexSmith · .NET normal ifadesi · IgnoreCaseDesenin türü ve çağrıdan okunan seçenekler; sağda durum.
DesenHer yakalama grubunun parantezleri kendi renginde, içi o renkte altı çizili; metin tema rengini korur, böylece okunaklı kalır.
Tam olarak 4 rakamHer parça için sade bir dille bir satır — “Metnin başı”, “Şu metinlerden biri: ‘jpg’, ‘png’”, “1 ile 5 arası rakam” — kendi grubunun altında. Çok uzun bir desen … N tane daha ile biter.
Grup etiketleriHer grubun adı veya numarası kendi renginde bir etikette — desendeki ve kodun altındaki renklerle aynı.
✓ Eşleşir: … ✗ Eşleşmez: …Desenden üretilen ve gerçek .NET motoru tarafından denetlenen, eşleşen iki dize ve eşleşmeyen bir dize. Boşluklar soluk noktalar olarak görünür.
▶ Deseni test et…Deseni RegexSmith Test Aracı'nda açar.

Durum

EkrandaAnlamı
✓ güvenli.NET deseni kabul eder ve içindeki hiçbir şey felaket düzeyinde geri izleme yapamaz.
⚠ takılabilirBir tekrar, neredeyse eşleşen uzun bir girdide üstel süre alabilir; kart bunun hangi tür olduğunu (RX001) ve Ctrl+.'nın düzeltmeler sunduğunu söyler.
✕ geçersizMotor deseni reddeder; kart onun mesajını gösterir: .NET bu deseni kabul etmiyor: …

“Güvenli” yalnızca şu anlama gelir: .NET deseni kabul eder ve desen takılamaz. Amaçladığınız şeyle eşleştiği anlamına gelmez — örnekler ve test aracı bunun içindir.

Grup alt çizgileri

Bir desenin her yakalama grubu doğrudan kodda kendi renginde ince bir çizgi alır — karttakiyle aynı renk. Beş gruplu uzun bir desen bir bakışta okunabilir: hangi kısım yıl, hangisi kimlik.

Başka bir grubun içindeki grup biraz daha aşağıda durur, böylece iki çizgi de görünür kalır. Renkler sırayla gelir: somon, yeşil, mavi, mor, kehribar, camgöbeği — ve yeniden.

Alt çizgiler ayarlardan kapatılabilir: Yakalama gruplarının altını çiz.

Takılabilecek desenler

Bazı desenler, neredeyse eşleşen uzun bir dizede üstel süre alır — bir düzenli ifadenin bir web isteğini dondurmasının klasik yolu. RegexSmith bunları biçimlerinden tanır ve tekrarın altına bir uyarı dalgalı çizgisi koyar; nedenini görmek için üzerine gelin.

([a-z0-9]+\.?)+ altında bir RX001 dalgalı çizgisi, açık Ctrl+. menüsü ve düzeltmenin önizlemesi: eski desen üstü çizili, yenisi atomik bir grupla

Altı çizilenler (RX001)

Atomik grupların veya ileri/geri bakışların içinde değil ve RegexOptions.NonBacktracking ile asla — orada bu olamaz.

Ctrl+. içindeki düzeltmeler

İmleci dalgalı çizginin üzerine getirin ve Ctrl+. tuşlarına basın — her düzeltme bir önizleme gösterir: desenin önceki (üstü çizili) ve sonraki hali.

DüzeltmeNe yapar
İç yinelemeyi atomik yap: (?>…)İç tekrarı (?>…) içine alır. Aynı dizeler eşleşir; yineleme artık pek çok şekilde bölünemez.
RegexOptions.NonBacktracking kullan (.NET 7+)Seçeneği çağrıya ekler. Her girdide doğrusal süre; .NET 7 veya üstü gerekir. Yalnızca desen izin verdiğinde sunulur — geri başvuru, ileri/geri bakış, atomik veya dengeleme grubu, koşul olmamalıdır.
Bu deseni RegexSmith'te test etDeseni test aracında açar — yalnızca riskli olanlar değil, her desen üzerinde sunulur.

RX001 ayarlardan (Düzenleyicideki ipuçları) veya araç ipucundaki Bu tür ipucunu gösterme bağlantısıyla kapatılabilir; Ctrl+. düzeltmeleri kalır.

Test aracı

RegexSmith Test Aracı, Bul Sonuçları'nın yanına yerleşmiş olarak açılır. Desen koddan gelir ve ona bağlı kalır: kendi örneklerinizde deneyin, değiştirin ve geri yazın.

RegexSmith Test Aracı: kaynak bağlantısı, desen, durum satırı, seçenek çipleri, beklentileri ve vurgulanmış gruplarıyla örnekler, kırmızı bir hatalı satır, grup tablosu ve düğmeler

Nasıl açılır

Desen ve seçenekleri

En üstte desenin dosyası ve satırı — oraya gitmek için tıklayın. Altında desen kutusu, durum satırı (✓ güvenli, ⚠ takılabilir veya motorun hatası, ardından M örnekten N tanesi beklendiği gibi · ms) ve seçenek çipleri: IgnoreCase, Multiline, Singleline, IgnorePatternWhitespace, ExplicitCapture, RightToLeft, CultureInvariant. Her değişiklik hemen yeniden çalıştırılır.

Örnekler ve beklentiler

İlk seferde kartın örnekleri oradadır: eşleşmesi gereken iki ve eşleşmemesi gereken bir örnek. Bir örnek ekleyip Enter'a basın… alanına yenisini yazın; düzenlemek için bir örneğe tıklayın, ✕ onu kaldırır. Her örneğin önündeki işaret ne yapması gerektiğini söyler — değiştirmek için tıklayın:

EkrandaAnlamı
✓eşleşmeli
✗eşleşmemeli
–beklenti yok, yalnızca göster

Tersini yapan örnek kırmızıya döner — ✗ eşleşti veya ✗ eşleşme yok — böylece örnekler desenin küçük bir belirtimine dönüşür. Eşleşmeler renklendirilir, gruplar kendi renklerinde altı çizilir, boşluklar nokta olarak gösterilir. 1 saniyeden uzun süren bir çalıştırma ⏱ çok yavaş ile durur.

Seçili örneğin grupları, seçili örneğin her eşleşmesini listeler: önce tüm eşleşme, sonra her grup değeri ve konumuyla (hiç katılmadığında yakalanmadı).

Değiştir

Değiştir sekmesi bir değiştirme kutusu ekler — $1, ${name}, $ için $$ — ve her örnek için sonucu, Regex.Replace'in vereceği şekilde gösterir.

Kopyala, geri al, uygula

Birim testi olarak kopyala, örneklerinizi içeren bir testi xUnit, NUnit veya MSTest için panoya koyar — belirtim test projesine taşınır.

Geri al, koddaki desene ve seçeneklere geri döner; örnekler kalır.

Koda uygula, deseni seçenekleriyle birlikte önceki türüyle aynı sabit olarak (normal, birebir veya ham) geri yazar — tek bir Geri Al onu geri alır. Test aracı açtıktan sonra o kod değiştiyse hiçbir şey yazılmaz: test aracını desenden yeniden açın.

Örnekler her desen ve her çözüm için %LocalAppData%\RegexSmith\samples içinde hatırlanır, böylece bir dahaki sefere zaten oradadır. Depoya hiçbir şey girmez.

Ayarlar

Araçlar › Seçenekler › SmithWorks › RegexSmith. Her seçeneğin ne yaptığına dair kısa bir açıklaması vardır.

SeçenekVarsayılan
Üzerine gelindiğinde desenleri açıklaaçık
Yakalama gruplarının altını çizaçık
RX001 Felaket düzeyinde geri izlemeaçık
Marketplace'te değerlendirme isteaçık

En altta: Varsayılanlara sıfırla, Belgeler, Marketplace'te değerlendir ve Geri bildirim gönder.

Ayarlar %LocalAppData%\RegexSmith içinde saklanır.

RegexSmith seçenekler sayfası
Seçenekler sayfası.

SSS

RegexSmith herhangi bir veri gönderiyor mu?

Hayır. Desenler açık belgeden okunur ve bilgisayarınızda çalıştırılır; örnekler %LocalAppData%\RegexSmith içinde saklanır. Ağ isteği yok, telemetri yok.

Kart “✓ güvenli” diyor. Desen doğru mu?

Mutlaka değil. “Güvenli”, .NET'in deseni kabul ettiği ve içindeki hiçbir tekrarın felaket düzeyinde geri izleme yapamayacağı anlamına gelir. Amaçladığınız şeyle eşleşip eşleşmediğini örnekler gösterir: test aracında onları ✓ veya ✗ olarak işaretleyin.

Desenimin üzerinde neden kart yok?

Kart, RegexSmith'in desen olduğunu bildiği bir dize sabitinin üzerinde görünür: new Regex'in, statik bir Regex yönteminin, [GeneratedRegex] veya [RegularExpression]'ın bağımsız değişkeni ya da orada kullanılan aynı dosyadaki bir sabit. Çalışma zamanında oluşturulan bir desen (birleştirilmiş, ayarlardan okunmuş) okunamaz. Ayarlardaki Üzerine gelindiğinde desenleri açıkla seçeneğini de kontrol edin.

Hangi düzenli ifade motoru kullanılıyor?

Visual Studio'nun kendisinin üzerinde çalıştığı .NET düzenli ifade motoru, çağrının seçenekleriyle. RegexOptions.NonBacktracking (.NET 7+) da çağrıdan okunur; örnekler bu durumda olağan motorda çalışır ve her iki şekilde de aynı dizeler eşleşir.

Koda uygula hiçbir şey yapmadı.

Test aracı açtıktan sonra desenin kodu değişti; bu yüzden RegexSmith artık deseni barındırmıyor olabilecek bir yere yazmaz — test aracı bunu düğmelerin altında söyler. Test aracını desenden yeniden açın. Kodda seçenekler için yer olmadığında ([RegularExpression] seçenek almaz) desen yazılır, seçenekler yazılmaz.

VB.NET, JavaScript veya TypeScript'te çalışıyor mu?

1.0'da değil: yalnızca C#. Diğer diller başka motorlar kullanır; birine ihtiyacınız varsa Feedback deposunda sorun.

Bir sorunu nereye bildirebilir veya bir özellik önerebilirim?

GitHub'daki Feedback deposunda bir issue açın — hatalar ve fikirler için formlar var (lütfen özel adları değiştirin). Marketplace'teki Q&A sekmesini de kullanabilirsiniz.

Değişiklik günlüğü

1.0.1

1.0.0