Quan trọng: Sử dụng ( )
dấu ngoặc đơn trong chuỗi tìm kiếm của bạn
Trong khi câu trả lời trước là đúng, có một điều quan trọng cần nhấn mạnh! Tất cả các phân đoạn phù hợp trong chuỗi tìm kiếm mà bạn muốn sử dụng trong chuỗi thay thế của bạn phải được đặt ( )
trong dấu ngoặc đơn , nếu không các phân đoạn phù hợp này sẽ không thể truy cập được vào các biến được xác định như $1
, $2
hoặc \1
, \2
v.v.
Ví dụ: chúng tôi muốn thay thế 'em' bằng 'px' nhưng giữ nguyên các giá trị chữ số:
margin: 10em; /* Expected: margin: 10px */
margin: 2em; /* Expected: margin: 2px */
- Chuỗi thay thế:
margin: $1px
hoặcmargin: \1px
- Chuỗi tìm kiếm (ĐÚNG):
margin: ([0-9]*)em
// với dấu ngoặc đơn
- Chuỗi tìm kiếm (INCORRECT):
margin: [0-9]*em
VÍ DỤ TRƯỜNG HỢP: Sử dụng margin: ([0-9]*)em
chuỗi tìm kiếm (có dấu ngoặc đơn). Kèm theo phân đoạn phù hợp mong muốn (ví dụ $1
hoặc \1
) bằng ( )
dấu ngoặc đơn như sau:
- Tìm:
margin: ([0-9]*)em
(có dấu ngoặc đơn)
- Thay thế thành:
margin: $1px
hoặcmargin: \1px
- Kết quả:
margin: 10px;
margin: 2px;
VÍ DỤ TRƯỜNG HỢP INCORRECT: Sử dụng margin: [0-9]*em
chuỗi tìm kiếm (không có dấu ngoặc đơn). Các mẫu biểu thức chính sau đây sẽ phù hợp với dòng mong muốn nhưng phân khúc phù hợp sẽ không có sẵn trong chuỗi thay thế như biến như $1
hay \1
:
- Tìm:
margin: [0-9]*em
(không có dấu ngoặc đơn)
- Thay thế thành:
margin: $1px
hoặcmargin: \1px
- Kết quả:
margin: px; /* `$1` is undefined */
margin: px; /* `$1` is undefined */
$0
?