Double Commander sử dụngTRegExpr, mộtthư viện miễn phí được viết bởi Andrey Sorokin.
Hầu hết các tập tin trợ giúp giải thích đến từ thư viện đó.
Regular Expression là một phương pháp được sử dụng rộng rãi để chỉ định một mẫu tìm kiếm văn bản. Các ký tự đặc biệt (meta-characters) cho phép chúng ta chỉ định, ví dụ, một chuỗi cụ thể mà chúng ta đang tìm kiếm xuất hiện ở đầu hoặc cuối một dòng hoặccó chứa n lần xuất hiện của một ký tự hoặc một nhóm ký tự.
Double Commander hỗ trợ các biểu thức chính quy trong các tính năng sau:
Thư viện TRegExp hỗ trợ hai chế độ hoạt động: ANSI và Unicode. Khi tìm kiếm trong một tệp văn bản, Double Commander sử dụng cả hai (tùy thuộc vào mã hóa tệp). Khi tìm kiếm theo tên, sử dụng Unicode.
Bất kỳ ký tự riêng lẻ nào cũng khớp với chính nó, trừ khi nó là một siêu ký tự có ý nghĩa đặc biệt được mô tả dưới đây.
Một chuỗi các ký tự khớp với chuỗi đó trong chuỗi mục tiêu, vì vậy lược đồbluhsẽ khớp với chuỗi mục tiêubluh。
Chúng ta có thể thực hiện điều này bằng cách thêm dấu gạch chéo ngược vào trước các ký tự meta hoặccác chuỗi thoát\để làm cho chúng được diễn giải theo nguyên văn, ví dụ: các ký tự meta^Bắt đầu chuỗi được khớp, nhưng\^các ký tự khớp^,\\tương xứng\Khoan đã.
Dưới đây là một số ví dụ:
| Ví dụ trận đấu dễ dàng | |
|---|---|
| Kết quả | Expressions |
Foobar |
Khớp chuỗifoobar |
bởi fooBarPtr |
so khớp^FooBarPtr |
Các ký tự có thể được chỉ định bằng cách sử dụng cú pháp thoát chuỗi tương tự như được sử dụng trong C và Perl:\nKết hợp ngắt dòng,\tSo sánh các tab và nhiều hơn nữa.
Tổng quát hơn, một\xnnTrong số đó,nnlà một chuỗi các số thập lục phân khớp với giá trị ASCII lànncủa nhân vật.
Nếu bạn cần một mã ký tự rộng (Unicode), bạn có thể sử dụng\x{nnnn}Trong số đó,nnnn –Một hoặc nhiều chữ số thập lục phân.
| Thoát chuỗi | |
|---|---|
| Kết quả | Expressions |
\xnn |
mã ASCII lànnký tự của |
\x{nnnn} |
mã ASCII lànnnnCác ký tự (một byte cho văn bản thông thường và hai byte cho Unicode) |
\T |
Tab (HT/TAB), và\x09tương tự |
\n |
·Ngắt dòng (NL/LF), với\x0agiống nhau |
\R |
Trở về ký tự (CR), với\x0dtương tự |
\F |
Page shapper (FF), với\x0ctương tự |
\A |
Chuông báo thức (BEL), so với\x07giống nhau |
\e |
Escape (ESC), với\x1bgiống nhau |
Dưới đây là một số ví dụ:
| Ví dụ về các chuỗi thoát | |
|---|---|
| Biểu thức | kết quả |
20bar. |
tương xứngfoo bar(Chú ý không gian ở giữa) |
\tfoobar |
Khớp với các ký tự được xác định trước bởi các ký tự tabfoobar |
Bạn có thể làm điều này bằng cách bao quanh một danh sách các ký tự trong[]Medium chỉ định một lớp ký tự, sẽ khớp bất kỳ ký tựnàotrong danh sách.
Nếu như[Nhân vật đầu tiên sau khi^, Sau đó, lớp này khớp với bất kỳ ký tự nàokhôngcó trong danh sách.
Trong danh sách,-Các ký tự được sử dụng để xác địnhmột phạm vi, vì vậya-zbày tỏ từađếnzcủa tất cả các nhân vật, kể cả
Nếu bạn muốn-Bản thân nó trở thành một thành viên của một lớp, đặt nó ở đầu hoặc cuối danh sách hoặc thoát bằng dấu gạch chéo ngược.
Nếu bạn muốn sử dụng]Bạn có thể đặt nó ở đầu danh sách hoặc thoát nó bằng dấu gạch chéo ngược.
| Lớp nhân vật | |
|---|---|
| Biểu thức | kết quả |
[-VN] |
tương xứnga、zhòa- |
[VN-] |
so khớpa、zhòa- |
[c] |
tương xứnga、zhòa- |
[a-c] |
Match Từađếnztất cả 26 chữ cái viết thường |
[N-\x0D] |
So sánh bất kỳ\x10、\x11、\x12、\x13 |
[\d-c] |
khớp với bất kỳ số nào,-hoặct |
[]-A] |
Match từ]đếnacủa bất kỳ ký tự nào |
Dưới đây là một vài ví dụ:
| Ví dụ về lớp nhân vật | |
|---|---|
| Kết quả | Expressions |
[aiou]r |
Tìm một Stringfoobar、foobervv, nhưng không bao gồmfoobbr、foobcrChờ đã. |
[^aeiou]r |
Tìm một Stringfoobbr、foobcrvv, nhưng không bao gồmfoobar、fooberChờ đã. |
Meta characters là bản chất của regex, các ký tự đặc biệt.
Có nhiều loại meta-character khác nhau, như được mô tả dưới đây.
Một số biểu thức có thể giúp phát hiện sự tách dòng.
| Dấu phân cách đường | |
|---|---|
| Kết quả | Expressions |
^ |
hành đầu |
$ |
kết thúc hàng |
\A |
Bắt đầu văn bản |
\Z |
Kết thúc một văn bản |
. |
Bất kỳ ký tự trong một dòng |
Dưới đây là một vài ví dụ:
| Ví dụ về Line Separator | |
|---|---|
| Kết quả | Expressions |
^foobar |
Chỉ khi chuỗifoobarSo khớp ở đầu hàng |
$foobar |
Chỉ khi chuỗifoobarKết hợp khi kết thúc dòng |
^foobar$(tiếng Anh) |
Chỉ khi một StringfoobarSo khớp khi là chuỗi duy nhất trong một hàng |
thong.r |
khớp với hìnhfoobar、foobbr、foob1rChuỗi bằng nhau |
Theo mặc định,^Các ký tự meta chỉ được đảm bảo khớp ở đầu chuỗi/văn bản đầu vào,$Các ký tự meta chỉ khớp ở cuối. Các dấu tách dòng được nhúng không bị^hoặc$Khớp.
Tuy nhiên, bạn có thể muốn nghĩ về một chuỗi như một bộ đệm đa dòng để^sẽ khớp sau bất kỳ dấu tách dòng nào bên trong chuỗi,$Nó sẽ khớp trước bất kỳ dấu tách dòng nào. Bạn có thể làm điều đó bằng cách mởmodifier m.
\Ahòa\Zgiống như^hòa$tương tự, nhưng khi sử dụngsửa đổi m, chúng không khớp nhiều lần, trong khi^hòa$Nó sẽ được khớp tại mỗi ngăn cách dòng nội bộ.
Theo mặc định,.Meta characters match any characters, nhưng nếumodifier sđược tắt, sau đó.Các dấu tách dòng nhúng không khớp nhau.
RegExpr xử lý các dấu tách dòng theo tiêu chuẩn kỹ thuật Unicode (tiêu chuẩn kỹ thuật #18):
^ở đầu chuỗi đầu vào, và nếubộ sửa đổi m được mở, cũng trong\x0D\x0Ahoặc\x0Ahoặc\x0DHỗ trợ Unicode (nếu có):\x2028hoặc\x2029hoặc\x0Bhoặc\x0Choặc\x85)。Xin lưu ý rằng trong\x0D\x0AKhông có hàng trống trong chuỗi.
$ở cuối chuỗi đầu vào, và nếubộ sửa đổi m được mở, cũng trong\x0D\x0Ahoặc\x0Ahoặc\x0Dhỗ trợ Unicode:\x2028hoặc\x2029hoặc\x0Bhoặc\x0Choặc\x85)。Xin lưu ý rằng trong\x0D\x0AKhông có hàng trống trong chuỗi.
.Khớp với bất kỳ ký tự nào, nhưng nếusửa đổi s bịtắt, thì.không tương xứng\x0D\x0Ahòa\x0Ahòa\x0D(Hỗ trợ Unicode:\x2028hòa\x2029hòa\x0Bhòa\x0Chòa\x85)。
Xin lưu ý rằng,^.*$(Chế độ dòng trống) sẽ không được sử dụng trong\x0D\x0Achuỗi rỗng được khớp trong một chuỗi, nhưng sẽ có một chuỗi rỗng được tìm thấy trong\x0A\x0DChuỗi rỗng được kết hợp trong một chuỗi.
Một số biểu thức giúp phát hiện một nhóm ký tự.
| Các lớp được định nghĩa trước | |
|---|---|
| Biểu thức | kết quả |
\w |
Các ký tự chữ và số (bao gồm_), đó là[0-9A-Za-z_] |
\W |
Các ký tự không chữ số |
\d |
các chữ số |
\N |
Ký tự không phải là số |
\s |
Bất kỳ ký tự không gian nào (với[ \t\n\r\f]giống nhau) |
\M |
các ký tự không phải là dấu cách |
Bạn có thể sử dụng nó trongmột lớp nhân vậttùy chỉnh\w、\dhòa\s。
Dưới đây là một vài ví dụ:
| Ví dụ về lớp được định nghĩa trước | |
|---|---|
| Kết quả | Expressions |
bởi foob\dr |
khớp với hìnhfoob1r、foob6rChuỗi bằng nhau, nhưng không bao gồmfoobar、foobbrđợi |
c [n]r |
khớp với hìnhfoobar、foob r、foobbrChuỗi bằng nhau, nhưng không bao gồmfoob=rđợi |
Lời bài hát: Word (\b(Bên cạnh đó có\wvà phía bên kia có\Wvị trí giữa hai ký tự (theo một trong hai thứ tự), các ký tự tưởng tượng ở đầu và cuối của chuỗi được tính là khớp\W。
| Giới hạn từ | |
|---|---|
| Biểu thức | kết quả |
\b; |
Giới hạn từ phù hợp |
\C |
So khớp các ranh giới không phải từ |
Bất kỳ mục nào của biểu thức chính quy đều có thể theo một loại iterator meta-character khác.
Với các meta-characters này, bạn có thể chỉ định số lần xuất hiện của các ký tự trước đó, meta-characters hoặc các biểu thức phụ.
| Bộ lặp | |
|---|---|
| Kết quả | Expressions |
* |
Số không hoặc nhiều lần ("tham lam"), tương tự như{0,} |
+ |
Một lần hoặc nhiều lần ("tham lam"), tương tự như{1,} |
? |
0 lần hoặc một lần ("tham lam"), tương tự như{0,1} |
{{n} |
vừa lúcnLời bài hát: The Greed (feat. |
{n,} |
ít nhất/ít nhấtnLời bài hát: The Greed (feat. |
{n,m} |
ít nhất/ít nhấtnlần nhưng không vượt quamLời bài hát: The Greed (feat. |
*? |
0 lần hoặc nhiều lần ("không tham lam"), tương tự như{0,}? |
+? |
Một lần hoặc nhiều lần ("không tham lam"), tương tự như{1,}? |
?? |
0 lần hoặc một lần ("không tham lam"), tương tự như{0,1}? |
{{n}? |
vừa lúcnLần ("Không tham lam") |
{n,}? |
ít nhấtnLời bài hát: Not Greed (Live) |
{n,m}? |
ít nhất/ít nhấtnlần nhưng không quámLời bài hát: Not Greed (Live) |
Do đó hình thức là{n,m}Các số trong dấu ngoặc nhọn chỉ định số lầntối thiểucác mục được khớpnvà thời giantối đam。
hình thức{n}tương đương với{n,n}vừa khớpnlần.
hình thức{n,}so khớpnthời gian hoặc hơn.
nhoặcmKhông có giới hạn về kích thước, nhưng số lượng lớn có thể làm chậm việc thực hiện và tiêu thụ nhiều bộ nhớ hơn.
Nếu dấu ngoặc nhọn xuất hiện trong bất kỳ ngữ cảnh nào khác, nó được coi là một ký tự bình thường.
Dưới đây là một vài ví dụ:
| Ví dụ về iterator | |
|---|---|
| Biểu thức | kết quả |
foob.* R |
khớp với hìnhfoobar、foobalkjdflkj9rhòafoobrChuỗi bằng nhau |
Foob.+ R |
khớp với hìnhfoobar、foobalkjdflkj9rChuỗi bằng nhau, nhưng không bao gồmfoobr |
foob.? R |
tương xứng nhưfoobar、foobbrhòafoobrChuỗi bằng nhau nhưng không bao gồmfoobalkj9r |
Fooba{2}R |
Khớp chuỗifoobaar |
fooba{2,}r {\displaystyle {2,}r} |
khớp với hìnhfoobaar、foobaaar、foobaaaarChuỗi bằng nhau |
Fooba{2, 3}r |
khớp với hìnhfoobaarhoặcfoobaaarChuỗi bằng nhau nhưng không bao gồmfoobaaaar |
Một lời giải thích nhỏ về "tham lam".
"Tham lam" lấy càng nhiều càng tốt,"không tham lam" lấy càng ít càng tốt.
Ví dụ,b+hòab*Áp dụng đối với chuỗiabbbbctrở về/trở vềbbbb,b+?quay vềb,b*?Trả về một chuỗi rỗng,b{2,3}?trở về/trở vềbb,b{2,3}trở về/trở vềbbb。
Bạn có thể chuyển tất cả các iterators sang chế độ "không tham lam"(xemmodifier g).
Bạn có thể sử dụng|Phân tách một loạtcác lựa chọn thay thế để chỉ định một mẫu, vì vậyfee|fie|foesẽ khớp với chuỗi mục tiêufee、fiehoặcfoe(f(e|i|o)ecũng như vậy).
Phương án 1: Sử dụng phương án 1 ((、[hoặc bắt đầu mô hình) đến đầu tiên|của tất cả các nội dung, thay thế cuối cùng chứa từ cuối cùng|Tất cả thông tin về the next pattern separator
Vì vậy, nó thường được thực hành để đặt các lựa chọn thay thế trong dấu ngoặc đơn để giảm thiểu sự nhầm lẫn về nơi họ bắt đầu và kết thúc.
Các lựa chọn thay thế được thử từ trái sang phải, vì vậy lựa chọn đầu tiên được tìm thấy để khớp toàn bộ biểu thức sẽ được chọn.
Điều đó có nghĩa là sự thay thế không nhất thiết phải tham lam.
Ví dụ: Khi sử dụngfoo|footso khớpbarefootkhi, chỉ cófooCác phần sẽ khớp vì đây là sự thay thế cho lần thử đầu tiên và nó khớp thành công chuỗi mục tiêu. (Điều này có thể không quan trọng khi chúng tôi sử dụng dấu ngoặc để nắm bắt văn bản phù hợp.)
Cũng hãy nhớ rằng,|được giải thích theo nghĩa đen trong ngoặc vuông, vì vậy nếu bạn viết[fee|fie|foe]Trên thực tế, nó chỉ phù hợp[feio|]。
Ví dụ về:
| Ví dụ về lựa chọn thay thế | |
|---|---|
| Kết quả | Expressions |
foo(bar| FOO) |
Khớp chuỗifoobarhoặcfoofoo |
Cấu trúc ngoặc đơn( ... )Nó cũng có thể được sử dụng để định nghĩa các biểu thức con regex.
Sau khi tìm kiếm, bạn có thể gọi bất kỳ biểu thức con nào và bạn có thể sử dụng biểu thức con làm mặt nạ.
Các biểu thức con được đánh số theo thứ tự từ trái sang phải dựa trên dấu ngoặc đơn mở của chúng.
Biểu thức con đầu tiên được đánh số 1 và hỗ trợ tối đa 90 biểu thức con (toàn bộ khớp regex được đánh số 0 bạn có thể thay thế bằng$0hoặc$&)。
Dưới đây là một vài ví dụ:
| Biểu thức con | |
|---|---|
| Biểu thức | kết quả |
(đổi hướng từ Foobar) |
Trận đấu bao gồm 8, 9 hoặc 10foobarString của Instance |
Foob([0-9])(Tiếng Việt)| c +) |
tương xứngfoob0r、foob1r、foobar、foobaar、foobaarđợi |
Lưu ý về mẫu Thay thế bằng:
$hoặc\Sử dụng prefix\。1\$ is $2\\rub\\sẽ trở về1$ is <subexpr2>\rub\。$nsau khi đặt số ban đầu, bạn phải sử dụng dấu ngoặc nhọn{}đemnBao gồm nó. a$12bcsẽ quay vềa<subexpr12>bc, nhưnga${1}2bcsẽ trở vềa<subexpr1>2bc。Ví dụ về:
Chúng ta hãy lấy ngày21.01.2018lộn ngược thành2018.01.21:
Tìm Kiếm:(\d{2})\.(\d{2})\.(\d{4})
Thay thế với:$3.$2.$1
Các ký tự Meta\1đến\9Được hiểu như một trích dẫn ngược.\nSo khớp các biểu thức con đã khớp trước đón。
Dưới đây là một vài ví dụ:
| Ví dụ về Backlinks | |
|---|---|
| Kết quả | Expressions |
(.)\ 1+ |
tương xứngaaaahòacc |
(.+)\ 1+ |
cũng tương xứngababhòa123123 |
(['"]?) (\c +)\1 |
tương xứng"13"(Trong dấu ngoặc kép),'4'(trong dấu ngoặc đơn) hoặc77(Không có dấu ngoặc kép) vv |
Prospective khẳng định:foo(?=bar)chỉ khibartrận đấu trướcfoo, vàbarKhông được bao gồm trong trận đấu
Dự đoán tiêu cực về phía trước:foo(?!bar)chỉ ở phía sau mà không theobarThời gian phù hợpfoo。
Tích cực nhìn lại khẳng định:(?<=foo)barchỉ khifooSau trận đấubar, vàfooKhông được bao gồm trong trận đấu
Dự đoán ngược tiêu cực:(?<!foo)barchỉ ở phía trước không cófooKhớp khi tiền tốbar。
Giới hạn:
Các dấu ngoặc đơn hướng tới phải ở cuối biểu thức và các dấu ngoặc đơn gợi ý phải ở đầu biểu thức. Do đó không được hỗ trợ trong việc lựa chọn|giữa hoặc trong nhóm.
đối với hậu kiến(?<!foo)bar, biểu thức chính quyfooPhải có độ dài cố định, tức là các hoạt động chỉ chứa các trận đấu có độ dài cố định. Lượng từ không được phép, ngoại trừ với các số lặp lại{n}hoặc{n,n}Các dấu ngoặc nhọn. Các lớp nhân vật được phép ở đây, các dấu chấm được phép, các dấu chấm được phép\bhòa\B。Các nhóm và lựa chọn không được phép.
Đối với 3 loại khẳng định khác, biểu thức trong ngoặc đơn có thể có độ phức tạp tùy ý.
Ngữ pháp:(?:expr)。
Các nhóm như vậy không có "chỉ mục" và không hiển thị cho các tham chiếu ngược. Nhóm không bắt được sử dụng khi chúng ta muốn nhóm các biểu thức cặp nhưng không muốn lưu chúng dưới dạng phần khớp/bắt của chuỗi. Sử dụng nhóm không bắt giữ có thể tăng tốc độ làm việc của biểu thức chính quy.
| Nhóm không bị bắt | |
|---|---|
| Kết quả | Expressions |
(HTTPS?| FTP)://([^/\r\n]+) |
Trong khihttps://doublecmd.sourceforge.ioTrận đấu giữahttpshòadoublecmd.sourceforge.io |
(?: https?| FTP)://([^/\r\n]+) |
Trong khihttps://doublecmd.sourceforge.ioTrung bình chỉ phù hợpdoublecmd.sourceforge.io |
Ngữ pháp:(?>expr|expr|...)。
Các nhóm nguyên tử là trường hợp đặc biệt cho các nhóm không bị bắt: nếu một phần của mẫu đã được tìm thấy, nhóm này sẽ vô hiệu hóa backtrack cho nhóm dấu ngoặc đơn. Các nhóm nguyên tử hoạt động nhanh hơn và hữu ích để tối ưu hóa các nhóm với nhiều biểu thức khác nhau.
Ví dụ,a(bc|b)ctương xứngabcchòaabc,a(?>bc|b)cso khớpabccNhưng không khớpabc, bởi vì động cơ bị cấm quay trở lại và cố gắng thiết lập nhóm nhưb。
Tiêu chuẩn Unicode đặt tên cho các lớp nhân vật.Đây là những chuỗi 2 chữ cái. thí dụLulà chữ in hoa,LlĐó là chữ thường. và nhóm lớn 1 chữ cáiLlà tất cả các chữ cái.
| Danh mục Unicode | |
|---|---|
| Thể loại | Sự miêu tả |
| chữ | L |
Lu | chữ hoa |
Ll | chữ thường |
Lt | Tiêu đề chữ hoa và chữ thường |
| Bảng chữ cái sửa đổi | Lm |
Lo Các | chữ cái khác |
| Đánh dấu | M |
Mn | không dấu khoảng cách |
Mc đánh | dấu kết hợp sân |
| Thẻ đóng | của tôi |
| Số | N |
| Số thập phân | Nd |
Nl | chữ và số |
No | Số khác |
P-Chấm | câu |
| Dấu chấm câu kết nối | Pc |
Pd | dấu chấm câu gạch nối |
| Điểm mở thầu | của Ps |
Pe | dấu câu đóng |
Pi | Dấu câu ban đầu |
| Dấu chấm câu cuối của | Pf |
Po | Các dấu chấm khác |
S | Biểu tượng |
Sm | Biểu tượng toán học |
Sc | Biểu tượng tiền tệ |
| Biểu tượng sửa đổi | Sk |
So Các | biểu tượng khác |
| Dấu phân cách | Z |
| Dấu cách | Zs |
| Bộ chia dòng | Zl |
| Phân cách đoạn văn | Zp |
C. | Khác |
Cc | kiểm soát |
| Định dạng | Cf |
| Đại lý | Cs |
Co | Sử dụng riêng |
Cn | chưa phân phối |
Các ký tự Meta\pMột ký tự Unicode thể hiện một thể loại cụ thể. Ngữ pháp:\pLhòa\p{L}cho tên 1 chữ,\p{Lu}Dùng cho tên 2 chữ cái.
ký tự meta\PLà ngược lại, nó đại diện cho một ký tự Unicode không nằm trong một lớp được chỉ định.
Các meta-characters này cũng được hỗ trợ trong các lớp nhân vật.
Cú pháp cho sửa đổi đơn:(?i)có nghĩa là mở,(?-i)Có nghĩa là đóng cửa. Cho phép nhiều modifier như:(?msgxr-imsgxr)。
Modifier được sử dụng để thay đổi hành vi của các biểu thức chính quy. Modifier chỉ ảnh hưởng đến(?imsgxr-imsgxr)Phần Regular Expression theo sau toán tử.
Bất kỳ sửa đổi nào trong số này có thể được nhúng vào chính biểu thức chính quy. Nếu modifier nằm trong một subexpression, nó chỉ ảnh hưởng đến subexpression đó.
^hòa$Thay đổi từ đầu hoặc cuối của chuỗi chỉ khớp thành đầu hoặc cuối của bất kỳ hàng nào trong chuỗi khớp, xem thêmdấu tách dòng.Đóng theo mặc định. .Thay đổi để khớp với bất kỳ ký tự nào, ngay cả dấu tách dòng (xem thêmdấu tách dòng), trong khi nó thường không khớp. Mở theo mặc định. gđóng cửa, sau đó+làm việc theo cách+?,*làm việc theo cách*?Chờ đã. а-яBao gồm thêm bảng chữ cái tiếng Ngaё,А-ЯBổ sung bao gồmЁ,а-ЯBao gồm tất cả các chữ cái tiếng Nga. Mở theo mặc định. textBị phớt lờ. Lưu ý rằng TRegExpr đang xem)khi đóng ghi chú, vì vậy bạn không thể đặt văn bản trong ghi chú)。Dưới đây là một vài ví dụ:
| Ví dụ về phần mở rộng Perl | |
|---|---|
| Biểu thức | kết quả |
(? Thảo luận: Saint-Petersburg |
tương xứngSaint-petersburghòaSaint-Petersburg |
(? c) Saint-(?- c)Petersburg |
tương xứngSaint-PetersburgNhưng không khớpSaint-petersburg |
(? i)(Saint-)? Petersburg |
tương xứngSaint-petersburghòasaint-petersburg |
((? Tôi)Saint-)? Petersburg. |
tương xứngsaint-PetersburgNhưng không khớpsaint-petersburg |
bộ sửa đổixBản thân nó cần được giải thích thêm.
Nó cho biết để bỏ qua các không gian không có dấu gạch chéo ngược cũng không phải trong các lớp ký tự.
Bạn có thể sử dụng nó để phá vỡ các biểu thức chính quy thành các phần (hơi) dễ đọc hơn.
#Ký tự cũng được coi là siêu ký tự để giới thiệu nhận xét, chẳng hạn như:
(
(abc) # 注释1
| # 您可以使用空格来格式化正则表达式 - TRegExpr会忽略它
(efg) # 注释2
)
Nó cũng có nghĩa là nếu bạn muốn sử dụng không gian thực trong chế độ hoặc#Các ký tự (ngoài các lớp ký tự, chúng không bị ảnh hưởng bởixTác động), bạn phải thoát khỏi chúng hoặc mã hóa bằng cách sử dụng lối thoát bát phân hoặc thập lục phân.
Nhìn chung, các tính năng này cải thiện đáng kể khả năng đọc văn bản regex.