Visual Studio, Bul ve değiştir, normal ifade


143

Bütün değiştirmeye çalışıyorum #include "whatever.h"ile #include <whatever.h>find kullanılarak ve ben regex kullanılan Visual Studio 2005'te işlevselliği yerine \#include \"[a-z\.h]+\"include ifadesi bulmak için. Ama ben regex yerine çerçeve nasıl merak ediyorum.

\#include \<[a-z\.h]+\>işe yaramadı ve işe yaramadı; o ifadeyi değiştirir #include "whatever.h"ile #include <[a-z.h]+>. Değiştirilen normal ifadeyi olduğu gibi korumak için nasıl çerçeveleyebilirim whatever.h?

Yanıtlar:


225

Visual studio 2012'den önceki sürümler için :
Bunu yaptığımda çalışır:
find include "{[a-zA-Z]+\.h}",
replace include <\1>.
Sorunuz için en alakalı kısımlar kıvırcık parantezler {}ve arka referanstır \1: \narama ifadesinde kıvırcık parantezlerle gösterilen n'inci gruba referanslar.

Visual studio 2012 & up sürümleri için:
VS2012 .NET Framework ile başlayarak düzenli ifadeler kullanılır. Yani olmalı:
bul include "([a-zA-Z]+\.h)",
değiştir include <$1>.


5
Bu, bu işlevsellik için parantez kullanan standart normal ifadeler sözdiziminden farklı görünmektedir.
Goblin Alchemist

44
Şimdi Visual Studio 2012'de farklıdır. \ 1 yerine $ 1 kullanılmalıdır. () artık {} yerine geçiyor. Artık herkesle daha uyumlu. msdn.microsoft.com/tr-tr/library/2k3te2cs(v=vs.110).aspx
oillio

1
[a-zA-Z0-9_]Daha fazla dosya adı yakalamak için kullanın .
Reinier Torenbeek

1

Büyük / küçük harf regex ifadeleri için Büyük / Küçük Harf Eşleştir ve Normal İfadeleri seçmeniz gerekir. Else [az] çalışmaz.resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.