2013-02-15 46 views
54

Tôi mới vào biểu thức thông thường và đã được đưa ra biểu thức chính quy sau:thường xuyên biểu hiện p {L} và p {N}

(\p{L}|\p{N}|_|-|\.)* 

Tôi biết những gì * phương tiện và | có nghĩa là "hoặc" và \ thoát.

Nhưng những gì tôi không biết phương thức \p{L}\p{N} là gì. Tôi đã tìm kiếm Google cho nó, mà không có kết quả ...

Ai đó có thể giúp tôi?

+0

Tôi google nó quá, nhưng tôi đã nhận [kết quả này] (https://stackoverflow.com/a/14891168/507738). –

Trả lời

84

\p{L} khớp với một điểm mã duy nhất trong danh mục "chữ".
\p{N} khớp với bất kỳ loại ký tự số nào trong bất kỳ tập lệnh nào.

Nguồn: regular-expressions.info

Nếu bạn đang đi để làm việc với biểu thức thông thường rất nhiều, tôi muốn đề nghị đánh dấu trang web, nó rất hữu ích.

+0

thx cho câu trả lời nhanh :). Nhưng không nên regex sau đó phù hợp với 10? Tôi đã thử một trình kết hợp regex trực tuyến: http://regexpal.com/ – Diemauerdk

+0

@ user1093774: Tôi không nghĩ rằng [regexpal] (http://regexpal.com/) hỗ trợ '\ p {}', nhưng có, nó Nên khớp. – Cerbrus

+1

Cú pháp này dành riêng cho việc thực hiện regex Unicode hiện đại, không phải tất cả các thông dịch viên đều nhận ra. Bạn có thể thay thế một cách an toàn \ p {L} bằng {a-zA-Z} (ký pháp ascii) hoặc {\ w} (ký pháp perl/vim); và \ p {N} bởi {0-9} (ascii) hoặc {\ d} (perl/vim). Nếu bạn muốn khớp tất cả, chỉ cần thực hiện: {a-zA-Z0-9} + hoặc {\ w \ d} + –

17

Đây là các phím tắt thuộc tính Unicode (\p{L} đối với các chữ cái Unicode, \p{N} cho các chữ số Unicode). Chúng được hỗ trợ bởi .NET, Perl, Java, PCRE, XML, XPath, JGSoft, Ruby (1.9 trở lên) và PHP (since 5.1.0)

Ở bất kỳ mức nào, đó là một regex rất lạ. Bạn không phải được sử dụng luân phiên khi một lớp nhân vật sẽ đủ:

[\p{L}\p{N}_.-]* 
+0

regex của nó trong xml - tôi đã không tự mình vẽ lại regex :) – Diemauerdk

+0

Ngoài thực tế là các dấu ngoặc đơn đã được sử dụng, REs sẽ thực sự biên dịch thành cùng một thứ (tốt, trong bất kỳ công cụ RE tối ưu nào hỗ trợ '\ p { …} 'Kiểu trình tự escape ở vị trí đầu tiên). –

+0

trông giống như plugin unicode XRegExp. nếu có, sẽ là bất kỳ chữ số alpha nào trong bất kỳ ngôn ngữ nào – Tim

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