Tutorial

Tìm kiếm và thay thế trong sublime text với regular expression

Xin chào các bạn bạn! Chắc các bạn cũng biết công cụ thần thánh tìm kiếm và thay thế trong sublime text. Nhưng hôm nay trong lúc làm việc mình gặp phải một vấn đề mà mình đã phát hiện ra một chức năng rất hay của sublime text. Gọi là phát hiện cho vui thôi chứ mình đã biết từ lâu nhưng đến hôm nay mới có dịp xài (chém gió ấy mà chứ thật ra không biết gì cả haha)

Câu chuyện đó là mình gặp code blade template với các blade template viết thế này:

{{$some_variable}}

Mình thì lại cực kì kỹ tính trong việc định dạng code, mình thì lại muốn thế này:

{{ $some_variable }}

Đó các bạn thấy không, dễ nhìn hơn khi mình thêm dấu cách vào đúng không?. Nhưng cuộc đời vẫn không đẹp như là mơ. Mình lại gặp một vấn đề đó là có quá nhiều blade. Thậm chí có cái còn một đống hàm bên trong như kiểu:

{{some_function($var1, $var2) + $var3}}

Một file mấy nghìn dòng, dò từng dòng khóc luôn quá. Mà một project thì có cả tỷ tỷ file. May mắn thay mình đã tìm được một cách, đó là dùng tính năng tìm kiếm và thay thế trong sublime text với regular expression. Cách dùng như hình dưới đây

tim-kiem-va-thay-trong-sublime-text-voi-regular-express
tim-kiem-va-thay-trong-sublime-text-voi-regular-express
  • Bước 1: dùng phím tắt Ctrl + H
  • Bước 2: check chọn chức năng tìm kiếm với Regular Express

  • Bước 3: nhập truy vấn tìm kiếm là chuỗi regex
    {{(\S.*\S?)}}
  • Bước 4: nhập nội dung muốn thay thế
    {{ $1 }}
  • Bước 5: bấm thay thế thôi!

Mình sẽ giải thích ngay đây thôi. Ở câu tìm kiếm, mình muốn tìm tất cả những chuỗi bắt đầu bằng {{ liền sau không phải là một khoảng trắng và kết thúc bằng một kí tự không phải khoảng trắng và cặp dấu }}. Như vậy mình có được chuỗi ở giữa cặp {{  }} đó là (\S.*?\S):

  • \S : tất cả kí tự không phải khoảng trắng
  • .* : tất cả kí tự
  • ? : chuỗi khớp regex đầu tiên

Ở câu thay thế, mình dùng {{ $1 }} , $1 ở đây là chuỗi (\S.*?\S) mà mình đã tìm ở trên. Ngoài ra thì mình thấy tính năng Regular express search & replace này của sublime text rất hay. Nó có thể giúp bạn tìm ra những chuỗi phức tạp hơn như thế nhiều. Ví dụ bạn muốn tìm tất cả các link trong bài viết theo cú pháp: http://link_jav_a.com

Hãy thử comment câu truy vấn regx của bạn ở phần bình luận nhé. Chúc các bạn thành công.

À quên nữa, nếu thấy hay nhớ like. Thấy hữu ích thì nhớ share ủng hộ mình nha. Ngoài ra các bạn có gì hay hoặc thắc mắc thì hãy comment, mình sẽ giải đáp và chia sẻ cùng các bạn.