Bởi vì regex là tham lam theo mặc định. I E. các biểu thức .*
hoặc .+
cố gắng lấy càng nhiều ký tự càng tốt. Do đó <.+>
sẽ kéo dài từ <
đầu tiên đến >
cuối cùng . Làm cho nó lười bằng cách sử dụng toán tử lười ?
:
regexp_replace(teststring, '<.+?>')
hoặc
regexp_replace(teststring, '<.*?>')
Bây giờ, tìm kiếm >
sẽ dừng lại ở >
đầu tiên gặp phải.
Lưu ý rằng .
bao gồm >
do đó, biến thể tham lam (không có ?
) nuốt tất cả >
nhưng cuối cùng.