2010-06-30 38 views
105

Tôi đang cố gắng thay thế tất cả #include "whatever.h" bằng #include <whatever.h> bằng chức năng tìm và thay thế trong Visual Studio 2005. Tôi đã sử dụng regex \#include \"[a-z\.h]+\" để tìm câu lệnh bao gồm. Nhưng tôi tự hỏi làm thế nào khung regex thay thế.Visual Studio, Tìm và thay thế, regex

không hoạt động và sẽ không hoạt động; nó thay thế tuyên bố #include "whatever.h" bằng #include <[a-z.h]+>. Làm thế nào tôi sẽ khung regex thay thế để giữ lại whatever.h vì nó là?

Trả lời

168

Đối với các phiên bản trước Visual studio 2012:
Nó hoạt động khi tôi làm điều này:
tìm include "{[a-zA-Z]+\.h}",
thay thế với include <\1>.
Các phần liên quan nhất cho câu hỏi của bạn là các dấu ngoặc nhọn {} và tham chiếu trở lại \1: \n tham chiếu đến nhóm thứ n được chỉ định bằng dấu ngoặc nhọn trong biểu thức tìm kiếm.

Ví phiên bản Visual studio 2012 & lên:
Bắt đầu với biểu thức thông thường VS2012 .NET Framework được sử dụng. Vì vậy, cần có:
tìm include "([a-zA-Z]+\.h)",
thay thế bằng include <$1>.

+4

Điều này có vẻ khác với cú pháp biểu thức chính quy chuẩn sử dụng dấu ngoặc đơn cho chức năng này. –

+2

Nó khác, nhưng hey, chúng tôi không thể thay đổi điều đó ... – Miel

+34

Nó bây giờ là khác nhau trong Visual Studio 2012. $ 1 nên được sử dụng thay vì \ 1.() bây giờ thay thế {}. Bây giờ hãy kiên định hơn với mọi người khác. http://msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.110).aspx – oillio

Các vấn đề liên quan