2010-07-12 25 views
8

Tôi không phải là tiếng Anh bản ngữ và vì vậy tôi không hiểu rõ ý nghĩa của 'hương vị' có thể là nó được gọi là cú pháp regex không ?? và nếu có thì có bao nhiêu cú pháp regex?Trong thế giới regex, hương vị và hương vị nào Java sử dụng?

BRE ERE Perl etc ??

+1

Tài liệu API của lớp 'java.util.regex.Pattern' mô tả cú pháp chính xác của các biểu thức chính quy trong Java. – Jesper

Trả lời

3
  • Hương vị đề cập đến công cụ regex - cú pháp và các thuộc tính bổ sung được hỗ trợ bởi công cụ regex cụ thể.
  • Pattern lớp tài liệu các thuộc tính của java regex engine
  • Ngoài những thứ cơ bản như ý nghĩa của siêu ký tự, triển khai khác nhau của công cụ regex hỗ trợ các loại cú pháp khác nhau. Ví dụ
    • cơ POSIX hỗ trợ [:digit:] cho chữ số (giống như [0-9]
    • Perl động cơ tương thích hỗ trợ \d phím tắt cho chữ số.
    • JavaScript không hỗ trợ behinds nhìn
    • PHP và một số người khác hỗ trợ tìm kiếm behinds, nhưng cần chúng có chiều dài cố định
    • Động cơ Regex của trình soạn thảo văn bản (Notepad ++) thường không hỗ trợ nhìn xung quanh.
1

Perl sử dụng Java như cú pháp cũ-reg

1

Một "hương vị" trong ngữ cảnh này là một cú pháp cụ thể, như bạn đã phỏng đoán. Có nhiều; đếm chúng sẽ chỉ là một nỗ lực học tập.

Để tìm những thứ thường được sử dụng, hãy xem các biểu mẫu được chấp nhận bởi grep.

Java có thể sử dụng bất kỳ cú pháp nào có triển khai Java.

8

Có nhiều biến thể khác nhau về chức năng của động cơ regex, kỹ thuật nào sử dụng công cụ "dưới mui xe" và cú pháp nào sử dụng cho một số tính năng nhất định.

Có một bài viết và bảng so sánh rất tốt tại regular-expressions.info.

Gói regex Java thực hiện công cụ biểu thức chính quy "Perl", nhưng nó có một số tính năng bổ sung như định lượng sở hữu (.*+) và xác nhận lookbehind (nhưng hữu hạn) có độ dài thay đổi). Mặt khác, nó bỏ sót một vài tính năng mà Perl có, cụ thể là biểu thức hoặc nhận xét có điều kiện. Tất cả trong tất cả, nó là một thực hiện rất đầy đủ tính năng.

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