Biểu tượng cho bất kỳ số lượng của bất kỳ nhân vật trong regex?


142

Tôi tự hỏi là có một biểu tượng cho bất kỳ số nào (bao gồm số không) của bất kỳ ký tự nào

Câu trả lời:



32

Bạn có thể sử dụng biểu thức chính quy này (bất kỳ khoảng trắng hoặc bất kỳ khoảng trắng nào) càng nhiều lần càng tốt và bao gồm 0.

[\s\S]*

Biểu thức này sẽ khớp với càng ít càng tốt, nhưng càng nhiều càng cần thiết cho phần còn lại của biểu thức.

[\s\S]*?

Ví dụ, trong regex [\s\S]*?Bnày sẽ khớp aBtrong aBaaaaB. Nhưng trong regex [\s\S]*Bnày sẽ phù hợp aBaaaaBtrong aBaaaaB.


có sự khác biệt nào giữa [\ s \ S] và.?
linqu

8
@linqu, .đôi khi sẽ không khớp \n(dòng mới), tùy thuộc vào tùy chọn đa dòng, nhưng [\s\S]sẽ khớp với bất kỳ ký tự nào.
đặc vụ-j

19

Ý bạn là

.*

. bất kỳ ký tự nào, ngoại trừ ký tự dòng mới, với chế độ dotall, nó cũng bao gồm các ký tự dòng mới

* bất kỳ số lượng nào của biểu thức trước, bao gồm 0 lần


4

Tôi sẽ sử dụng .*. .phù hợp với bất kỳ ký tự, *biểu thị 0 hoặc nhiều lần xuất hiện. Bạn có thể cần một công tắc DOTALL sang regex để ghi lại các dòng mới ..


-7

Vâng, có một, đó là dấu hoa thị: *

a* // looks for 0 or more instances of "a"

Điều này cần được đề cập trong bất kỳ hướng dẫn hoặc tài liệu regex Java nào mà bạn tra cứu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.