Chia sẻ qua


IsMatch, Matchvà các MatchAll hàm

Áp dụng cho: Ứng dụng Canvas Copilot Studio Dựa trên mô hình ứng dụng Power Platform CLI Chức năng dataverse Power Pages

Kiểm tra một kết quả khớp hoặc trích xuất các phần của một chuỗi văn bản dựa trên một mẫu hình.

Mô tả

Hàm IsMatch kiểm tra xem một chuỗi văn bản có khớp với một mẫu hình có thể bao gồm các ký tự thông thường, mẫu hình được xác định trước hay một biểu thức thông thường. Các Match hàm và MatchAll trả về những gì đã khớp, bao gồm các trận đấu con.

Sử dụng IsMatch để xác thực nội dung người dùng đã nhập trong điều khiển nhập Văn bản. Ví dụ: xác nhận xem người dùng đã nhập địa chỉ email hợp lệ trước khi kết quả được lưu vào nguồn dữ liệu của bạn hay chưa. Nếu mục nhập không khớp với tiêu chí của bạn, hãy thêm các điều khiển khác nhắc người dùng sửa mục nhập.

Dùng Match để trích xuất chuỗi văn bản đầu tiên khớp với một mẫu hình và MatchAll để trích xuất tất cả các chuỗi văn bản khớp. Trích xuất các tệp con để phân tích cú pháp chuỗi phức tạp.

Match trả về một bản ghi thông tin cho kết quả khớp đầu tiên được tìm thấy và trả MatchAll về một bảng bản ghi cho mỗi kết quả khớp được tìm thấy. (Các) bản ghi có chứa:

Column Loại Mô tả
trận đấu phụ được đặt tên hoặc các trận đấu phụ Văn bản Mỗi khớp con có tên có một cột riêng. Tạo một kết hợp con có tên bằng cách sử dụng (?<Tên>... ) trong biểu thức thông thường. Nếu một khớp con có tên có cùng tên với một trong các cột được xác định trước, thì công cụ con sẽ được ưu tiên và một cảnh báo được tạo ra. Đổi tên kết hợp con để tránh cảnh báo này.
Đầy đủ Văn bản Tất cả các chuỗi văn bản đều khớp.
Bắt đầu trận đấu Số Vị trí đầu tiên của nội dung khớp trong chuỗi văn bản đã nhập. Hàm trả về giá trị 1 cho ký tự đầu tiên của chuỗi.
SubMatches, chỉ khi MatchOptions.NumberedSubMatches được sử dụng. Bảng văn bản một cột (cột Giá trị) Bảng các tệp con được đánh số theo thứ tự mà chúng xuất hiện trong biểu thức thông thường. Nói chung, các tiểu vùng có tên dễ làm việc hơn và được khuyến khích. Sử dụng hàm ForAll hoặc hàm Index để làm việc với một kết quả khớp con riêng lẻ. Nếu không có tệp con nào được xác định trong biểu thức thông thường, bảng này sẽ xuất hiện nhưng trống.

Các hàm này hỗ trợ MatchOptions. Theo mặc định:

  • Các hàm này thực hiện so khớp có phân biệt chữ hoa chữ thường. Sử dụng MatchOptions.IgnoreCase để thực hiện các phép so khớp không phân biệt chữ hoa chữ thường.
  • IsMatch khớp toàn bộ chuỗi văn bản (Tùy chọn Khớp Hoàn chỉnh), MatchMatchAll trong khi và tìm kiếm kết quả khớp ở bất kỳ đâu trong chuỗi văn bản (Chứa MatchOption). Sử dụng các tùy chọn Complete, Contains, BeginsWith hoặc EndsWith tùy theo trường hợp của bạn.

IsMatch trả về true nếu chuỗi văn bản khớp với mẫu hoặc false nếu nó không khớp. Match trả về giá trị trống nếu không tìm thấy kết quả khớp có thể kiểm tra được với hàm IsBlank . MatchAll trả về một bảng trống nếu không tìm thấy kết quả khớp nào có thể được kiểm tra với hàm IsEmpty .

Nếu bạn sử dụng MatchAll để tách một chuỗi văn bản, hãy cân nhắc sử dụng hàm Split , cách này đơn giản hơn và nhanh hơn.

Mẫu

Yếu tố quan trọng để dùng các hàm này nằm ở việc mô tả mẫu để so khớp. Bạn mô tả mẫu trong một chuỗi văn bản ở dạng tổ hợp như sau:

  • Các ký tự thông thường, chẳng hạn như "abc" hoặc "123".
  • Các mẫu được xác định trước, chẳng hạn như Letter, MultipleDigits hoặc Email. (Liệt Match kê xác định các mẫu hình này.)
  • Mã biểu thức chính quy, chẳng hạn như "\d+\s+\d+" hoặc "[a-z]+".

Kết hợp các thành phần này bằng toán tử ghép nối chuỗi &. Ví dụ: "abc" & Digit & "\s+" là một mẫu hợp lệ khớp với các ký tự "a", "b" và "c", theo sau là một chữ số từ 0 đến 9, theo sau là ít nhất một ký tự khoảng trắng.

Các ký tự thông thường

Mẫu đơn giản nhất là một chuỗi các ký tự bình thường khớp chính xác.

Ví dụ: khi được sử dụng với hàm IsMatch , chuỗi "Xin chào" khớp chính xác với mẫu "Xin chào ". Chính xác tuyệt đối. Chuỗi không "hello!" khớp với mẫu hình vì dấu chấm than ở cuối và vì trường hợp sai đối với chữ "h". (Xem các Match tùy chọn để biết cách sửa đổi hành vi này.)

Trong ngôn ngữ mẫu, các ký tự được . ? * + ( ) [ ] ^ $ | \ dành riêng cho các mục đích đặc biệt. Để sử dụng các ký tự này, \ hãy tạo tiền tố cho ký tự có (dấu gạch chéo ngược) để biểu thị rằng ký tự phải được dùng theo nghĩa đen hoặc sử dụng một trong các mẫu được xác định trước. Ví dụ, bạn có thể khớp chuỗi "Hello?" bằng cách sử dụng mẫu "Hello\\?" có dấu gạch chéo ngược trước dấu chấm hỏi.

Các mẫu được xác định trước

Các mẫu được xác định trước giúp quá trình so khớp một trong các nhóm ký tự hoặc một chuỗi nhiều ký tự trở nên đơn giản. Sử dụng toán tử ghép chuỗi & để kết hợp chuỗi văn bản của riêng bạn với các thành viên của Match bộ liệt kê:

Match enum Mô tả Biểu thức chính quy
Bất kì So khớp bất kỳ ký tự nào. .
Dấu phẩy Khớp với dấu phẩy ,. ,
chữ số So khớp với một chữ số ("0" đến "9"). \d
E-mail So khớp một địa chỉ email có chứa biểu tượng "at" ("@") và một tên miền có chứa dấu chấm (".") Xem ghi chú
Dấu gạch nối So khớp một dấu gạch nối. - Xem ghi chú
Bên tráiParen Khớp với dấu ngoặc đơn trái (. \(
Thư So khớp chữ cái. \p{L}
Nhiều chữ số So khớp 1 hoặc nhiều chữ số. \d+
Nhiều chữ cái So khớp 1 hoặc nhiều chữ cái. \p{L}+
NhiềuNonSpaces So khớp với một hoặc nhiều ký tự không thêm khoảng trắng (không phải khoảng trắng, tab hoặc dòng mới). \S+
Nhiều Không Gian So khớp với một hoặc nhiều ký tự có thêm khoảng trắng (khoảng trắng, tab hoặc dòng mới). \s+
Không gian So khớp một ký tự không thêm khoảng trắng. \S
Tùy chọnChữ số So khớp 0, 1 hoặc nhiều chữ số. \d*
Tùy chọnChữ cái So khớp 0, 1 hoặc nhiều chữ cái. \p{L}*
Tùy chọnNonSpaces So khớp 0, 1 hoặc nhiều ký tự không thêm khoảng trắng. \S*
Không gian tùy chọn So khớp 0, 1 hoặc nhiều ký tự thêm khoảng trắng. \s*
Giai đoạn Khớp với dấu chấm hoặc dấu chấm .. \.
PhảiParen Khớp với dấu ngoặc đơn phải ). \)
Không gian So khớp một ký tự có thêm khoảng trắng. \s
Thẻ Khớp một ký tự tab. \t

Ví dụ: mẫu "A" & MultipleDigits khớp với chữ cái "A" theo sau là một hoặc nhiều chữ số.

Power Apps sử dụng một định nghĩa khác cho Match. Email vàMatch. Gạch nối. Đánh giá Text( Match.Email ) để xem biểu thức thông thường được máy chủ của bạn sử dụng.

Biểu thức chính quy

Mẫu hình mà những hàm này sử dụng được gọi là biểu thức thông thường. Phương ngữ biểu thức thông thường cụ thể của Power Fx được nêu chi tiết trong Biểu thức thông thường trong Power Fx.

Biểu thức thông thường là mạnh mẽ và phục vụ nhiều mục đích khác nhau. Chúng cũng có thể trông giống như một chuỗi dấu câu ngẫu nhiên. Bài viết này không mô tả tất cả các khía cạnh của biểu thức thông thường, nhưng có rất nhiều thông tin, hướng dẫn và công cụ có sẵn trực tuyến.

Các biểu thức thông thường có lịch sử lâu dài và có sẵn trong nhiều ngôn ngữ lập trình. Mỗi ngôn ngữ lập trình có phương ngữ riêng của biểu thức thông thường, và có rất ít tiêu chuẩn. Chúng tôi cố gắng đảm bảo cùng một biểu thức thông thường cho cùng một kết quả trên tất cả các triển khai Power Fx. Tương thích không dễ thực hiện vì Power Fx chạy trên javaScript và .NET có sự khác biệt đáng kể. Để phù hợp với việc chạy trên các nền tảng khác nhau, Các biểu thức thông thường của Power Fx bị giới hạn ở một tập hợp con các tính năng được hỗ trợ rộng rãi trong toàn ngành.

Do đó, một số biểu thức thông thường có thể hoạt động trong các môi trường khác có thể bị chặn hoặc yêu cầu chỉnh sửa trong Power Fx. Lỗi thời gian biên soạn được báo cáo là tính năng không được hỗ trợ gặp phải. Đây là một trong những lý do khiến biểu thức và tùy chọn thông thường phải là hằng số thời gian biên soạn chứ không phải động (ví dụ như được cung cấp trong một biến).

Lưu ý

Power Apps sử dụng phiên bản trước của Power Fx các biểu thức thông thường có ít hạn chế hơn nhưng cũng ít tính năng hơn. MatchOptions.DotAllMatchOptions.FreeSpacing không sẵn dùng và định nghĩa của Match. EmailMatch. Gạch nối khác nhau. Các cặp đại diện Unicode không được coi là một ký tự duy nhất. MatchOptions.NumberedSubMatches là mặc định. Phiên bản biểu thức thông thường được mô tả ở đây sẽ sớm sẵn dùng trong Power Apps, dưới khóa chuyển "Tương thích Power Fx V1.0".

Dưới đây là một số thành phần cơ bản của biểu thức thông thường giúp tăng độ phức tạp trong việc phân tích một số.

Đặc điểm Ví dụ: Mô tả
Lớp ký tự được xác định trước \d Biểu thức thông thường này khớp với một số đơn, chẳng hạn như 1. Lớp ký tự khớp với tập \d09 hợp các ký tự và khớp với các chữ số chuẩn và các chữ số được xác định trong thể loại ký tự Unicode "Nd". Có các lớp ký tự cho chữ cái và số cùng \w với dấu cách, bao gồm cả dòng mới với \s. Ngoài ra còn có các lớp ký tự nghịch đảo được viết hoa: khớp \D với mọi thứ \d không có.
Một hoặc Nhiều \d+ Biểu thức thông thường này khớp với một hoặc nhiều số, chẳng hạn như 123. Phần + tử a after cho biết "một hoặc nhiều" của thành phần cuối cùng.
Số không hoặc Một \+?\d Biểu thức thông thường này khớp với một + dấu tùy chọn theo sau là một hoặc nhiều số, +123 chẳng hạn như chỉ 123. A ? sau khi một yếu tố cho biết "this is optional, it can occur zero or one time" (điều này là tùy chọn, nó có thể xảy ra bằng không hoặc một lần). Dấu + gạch chéo ngược trước nó để phân biệt nó như một ký tự chữ chứ không phải là sử dụng "một hoặc nhiều".
Nhóm và thay thế (-|\+)?\d+ Biểu thức thông thường này khớp + với một dấu -hoặc , tùy chọn, rồi đến một chuỗi các số, chẳng hạn -123như , +123123. Chúng tôi đang giới thiệu hai khái niệm ở đây thường được sử dụng cùng nhau. Trước tiên, chúng ta có dấu ngoặc đơn nhóm lại thành tập hợp các phần tử với nhau để tác ? động. Thứ hai, chúng tôi có | nội dung là "cái này hoặc cái đó".
Lớp ký tự tùy chỉnh (-|\+)?\d+[eE][\-\+]?\d+ Biểu thức thông thường này thêm số mũ vào kết hợp với hai lớp ký tự, khớp +123e-12. Lớp ký tự giống như sự | luân phiên cung cấp "khớp với một trong những thứ này" ở dạng nhỏ gọn hơn. Như với , có +ý nghĩa - đặc biệt trong các lớp nhân vật biểu thức thông thường vì vậy chúng ta cần phải thoát khỏi nó.
Không hoặc Nhiều hơn (-|\+)?\d+\.?\d*[eE][\-\+]?\d+ Biểu thức thông thường này cộng dấu thập phân sau phần số nguyên của số, chẳng hạn như -123.456e-89 hoặc -123.E+32. Dấu \d thập phân sau có một * số lượng cho biết "không hoặc nhiều lần" đối với các chữ số thập phân sau dấu thập phân .
Chụp nhóm (?&lt;number&gt;(-|\+)?\d+\.?\d*)[eE](?&lt;exponent&gt;[\-\+]?\d+) Cuối cùng, chúng tôi thêm các nhóm chụp cho numberexponent. Biểu thức thông thường không chỉ khớp với toàn bộ chuỗi mà còn có thể trích xuất các phần để sử dụng trong công thức của bạn, e trong trường hợp này là phần trước (hoặc E) và phần sau đó.

Những ví dụ này chỉ cho một hương vị nhỏ của những gì biểu thức thông thường có thể làm. Chúng thường được sử dụng để xác thực số ID, địa chỉ email, số điện thoại, ngày giờ và để trích xuất thông tin từ tất cả các loại tệp văn bản. Tiếp tục cuộc hành trình của bạn bằng cách đọc biểu thức Thông thường trong Power Fx, thử nghiệm và sử dụng web để tìm hiểu thêm.

Match Tùy chọn

Sửa đổi hành vi của những hàm này bằng cách xác định một hoặc nhiều tùy chọn mà bạn kết hợp bằng cách dùng toán tử ghép nối chuỗi (&).

Bảng liệt kê MatchOptions Mô tả Tác động đến biểu thức chính quy
MatchOptions.Bắt đầu với Mẫu phải khớp từ đầu văn bản. Thêm ^ vào đầu biểu thức chính quy.
MatchOptions.Hoàn thành Mặc định cho IsMatch trên Power Apps. Mẫu hình khớp với toàn bộ chuỗi văn bản, từ đầu đến cuối. Thêm ^ vào đầu và thêm $ vào cuối biểu thức chính quy.
MatchOptions.Chứa Mặc định cho MatchMatchAll, và IsMatch bên ngoài Power Apps. Mẫu phải xuất hiện ở đâu đó trong văn bản nhưng không cần phải ở đầu hoặc cuối văn bản. Không sửa đổi biểu thức chính quy.
MatchOptions.DotAll Thay đổi hành vi của toán tử . (dấu chấm) để khớp với tất cả các ký tự, bao gồm các ký tự dòng mới. Không sẵn dùng trong Power Apps. Không sửa đổi biểu thức chính quy. Tùy chọn này tương đương với trợ phím "s" chuẩn cho biểu thức thông thường.
MatchOptions.Kết thúc bằng Mẫu phải khớp đến cuối văn bản. Thêm $ vào cuối biểu thức chính quy.
MatchOptions.FreeSpacing Các ký tự khoảng trắng, bao gồm cả đường mới, bị bỏ qua trong biểu thức thông thường. Chú thích cuối dòng bắt đầu bằng chú thích # bị bỏ qua. Không sẵn dùng trong Power Apps. Chỉ thay đổi cách cú pháp biểu thức thông thường. Tùy chọn này tương đương với trợ phím "x" chuẩn cho biểu thức thông thường.
MatchOptions.IgnoreCase Coi chữ hoa và chữ thường là như nhau. Theo mặc định, so khớp có phân biệt chữ hoa chữ thường. Không sửa đổi biểu thức chính quy. Tùy chọn này tương đương với công cụ sửa đổi "i" tiêu chuẩn đối với các biểu thức chính quy.
MatchOptions.Nhiều dòng Thay đổi hành vi ^ của $ và để khớp ở cuối aline. Không sửa đổi biểu thức chính quy. Tùy chọn này tương đương với công cụ sửa đổi "m" tiêu chuẩn đối với các biểu thức chính quy.
MatchOptions.NumberedSubMatches Ảnh chụp có tên được ưa thích vì chúng dễ hiểu và dễ duy trì hơn. Hiệu suất cũng cải thiện vì ảnh chụp không cần thiết không được giữ lại. Nhưng đối với các biểu thức thông thường cũ hơn, coi mỗi bộ dấu ngoặc đơn là một phần bắt giữ được đánh số đi kèm với bảng SubMatches trong kết quả. Mặc định trong Power Apps. Không sửa đổi biểu thức chính quy. Ảnh chụp có tên bị vô hiệu hóa và \1 tham chiếu ngược kiểu được bật.

Sử MatchAll dụng tương tự như sử dụng trợ phím "g" tiêu chuẩn cho các biểu thức thông thường.

Cú pháp

IsMatch( Văn bản, Mẫu [, Tùy chọn ] )

  • Văn bản – Bắt buộc. Chuỗi văn bản để kiểm tra.
  • Mẫu - Yêu cầu. Mẫu để kiểm tra ở dạng chuỗi văn bản. Ghép nối các mẫu được xác định trước mà enum Match xác định hoặc cung cấp một biểu thức thông thường. Mẫu phải là một công thức không đổi mà không có biến số, nguồn dữ liệu hoặc các tham chiếu động khác thay đổi khi ứng dụng chạy. Lưu ý rằng công thức phải được thể hiện là "Match. Pattern được xác định trước" ví dụ: Match. Email
  • Tùy chọn - Không bắt buộc. Một tổ hợp chuỗi văn bản của các giá trị trong bảng liệt kê MatchOptions. Tổ hợp mặc định là MatchOptions.Complete. Tùy chọn phải là công thức không đổi mà không có biến số, nguồn dữ liệu hoặc tham chiếu động khác thay đổi khi ứng dụng chạy.

Match( Văn bản, Mẫu [, Tùy chọn ] )

  • Văn bản – Bắt buộc. Chuỗi văn bản để so khớp.
  • Mẫu - Yêu cầu. Mẫu để so khớp ở dạng chuỗi văn bản. Ghép nối các mẫu được xác định trước mà enum Match xác định hoặc cung cấp một biểu thức thông thường. Mẫu phải là công thức hằng số, không có bất kỳ biến, nguồn dữ liệu hoặc tham chiếu động nào khác thay đổi khi ứng dụng chạy.
  • Tùy chọn - Không bắt buộc. Một tổ hợp chuỗi văn bản của các giá trị trong bảng liệt kê MatchOptions. Tổ hợp mặc định là MatchOptions.Contains. Các tùy chọn phải là một công thức không đổi mà không có bất kỳ biến số, nguồn dữ liệu hoặc tham chiếu động nào khác thay đổi khi ứng dụng chạy.

MatchAll( Văn bản, Mẫu [, Tùy chọn ] )

  • Văn bản – Bắt buộc. Chuỗi văn bản để so khớp.
  • Mẫu - Yêu cầu. Mẫu để so khớp ở dạng chuỗi văn bản. Ghép nối các mẫu được xác định trước mà enum Match xác định hoặc cung cấp một biểu thức thông thường. Mẫu phải là một công thức không đổi mà không có biến số, nguồn dữ liệu hoặc các tham chiếu động khác thay đổi khi ứng dụng chạy.
  • Tùy chọn - Không bắt buộc. Một tổ hợp chuỗi văn bản của các giá trị trong bảng liệt kê MatchOptions. Tổ hợp mặc định là MatchOptions.Contains. Tùy chọn phải là công thức không đổi mà không có biến số, nguồn dữ liệu hoặc tham chiếu động khác thay đổi khi ứng dụng chạy.

IsMatch Ví dụ

Các ký tự thông thường

Hãy tưởng tượng ứng dụng của bạn có một điều khiển nhập Văn bản có tên là TextInput1. Người dùng nhập giá trị vào điều khiển này để lưu trữ chúng trong cơ sở dữ liệu.

Người dùng nhập Hello worldvào TextInput1.

Công thức Mô tả Kết quả
IsMatch( TextInput1.Text, "Hello world" ) Kiểm tra xem nội dung người dùng nhập có khớp chính xác với chuỗi "Hello world" hay không. ĐÚNG VẬY
IsMatch( TextInput1.Text, "Good bye" ) Kiểm tra xem nội dung người dùng nhập có khớp chính xác với chuỗi "Good bye" hay không. SAI
IsMatch( TextInput1.Text, "hello", Contains ) Kiểm tra xem nội dung người dùng nhập có chứa từ "hello" (phân biệt chữ hoa chữ thường) hay không. SAI
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) Kiểm tra xem nội dung người dùng nhập có chứa từ "hello" (không phân biệt chữ hoa chữ thường) hay không. ĐÚNG VẬY

Các mẫu được xác định trước

Công thức Mô tả Kết quả
IsMatch( "123-45-7890", Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit & Match.Digit ) So khớp Số an sinh xã hội tại Hoa Kỳ ĐÚNG VẬY
IsMatch( "joan@contoso.com", Match.Email ) So khớp địa chỉ email ĐÚNG VẬY
IsMatch( "123.456", Match.MultipleDigits & Match.Period & Match.OptionalDigits ) So khớp một chuỗi gồm các chữ số, một dấu chấm và sau đó không có hoặc có nhiều chữ số. ĐÚNG VẬY
IsMatch( "123", Match.MultipleDigits & Match.Period & Match.OptionalDigits ) So khớp một chuỗi gồm các chữ số, một dấu chấm và sau đó không có hoặc có nhiều chữ số. Một dấu chấm không xuất hiện trong văn bản cần so khớp. Vì vậy, mẫu này không khớp. SAI

Biểu thức chính quy

Công thức Mô tả Kết quả
IsMatch( "986", "\d+" ) So khớp một số nguyên lớn hơn 0. ĐÚNG VẬY
IsMatch( "1.02", "\d+(\.\d\d)?" ) So khớp số tiền dương. Nếu chứa dấu thập phân thì nội dung nhập cũng phải chứa hai ký tự số sau dấu thập phân. Ví dụ: 3.00 là hợp lệ, nhưng 3.1 thì không. ĐÚNG VẬY
IsMatch( "-4.95", "(-)?\d+(\.\d\d)?" ) So khớp số tiền dương hoặc âm. Nếu chứa dấu thập phân thì nội dung nhập cũng phải chứa hai ký tự số sau dấu thập phân. ĐÚNG VẬY
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) So khớp Số an sinh xã hội tại Hoa Kỳ. Xác thực định dạng, loại và độ dài của trường nội dung nhập được cung cấp. Chuỗi cần so khớp phải bao gồm 3 ký tự số, tiếp đến là dấu gạch ngang, sau đó là 2 ký tự số rồi đến dấu gạch ngang và 4 ký tự số. ĐÚNG VẬY
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) Giống như ví dụ trước, nhưng một trong những dấu gạch nối nằm ngoài vị trí của nội dung nhập. SAI
IsMatch( "AStrongPasswordNot", "(?!^[0-9]\*$)(?!^[a-zA-Z]\*$)([a-zA-Z0-9]{8,10})" ) Xác thực mật khẩu mạnh phải chứa tám, chín hoặc 10 ký tự, ít nhất một chữ số và ít nhất một ký tự chữ cái. Chuỗi không được chứa ký tự đặc biệt. SAI

Match và MatchAll ví dụ

Công thức Mô tả Kết quả
Match( "Bob Jones <bob.jones@contoso.com>", "<(?<email>" & Match.Email & ")>") Chỉ trích xuất phần email của thông tin liên lạc. {
email: "bob.jones@contoso.com",
FullMatch: "<bob.jones@contoso.com>",
StartMatch: 11
}
Match( "Bob Jones <InvalidEmailAddress>", "<(?<email>" & Match.Email & ")>" Chỉ trích xuất phần email của thông tin liên lạc. Không tìm thấy địa chỉ hợp pháp (không có dấu @). Vì vậy, hàm trả về giá trị blank (trống). trống
Match( Language(), "(<language>\w{2})(?:-(?<script>\w{4}))?(?:-(?<region>\w{2}))?" ) Trích xuất ngôn ngữ, tập lệnh và các phần khu vực của thẻ ngôn ngữ mà hàm Language trả về. Những kết quả này phản ánh Hoa Kỳ; xem tài liệu về hàm Language để biết thêm ví dụ. Toán tử (?: nhóm các ký tự mà không tạo đoạn khớp khác. {
ngôn ngữ: "en",
script: blank,
khu vực: "HOA KỲ",
FullMatch: "en-US",
StartMatch: 1
}
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ) Trích xuất giờ, phút và giây từ giá trị thời lượng đạt ISO 8601. Các số được trích xuất vẫn ở dạng chuỗi văn bản; sử dụng hàm Value để chuyển đổi chuỗi đó thành một số trước khi thực hiện các phép toán. {
giờ: "2",
phút: "1",
giây: "39",
FullMatch: "PT2H1M39S",
StartMatch: 1
}

Hãy tìm hiểu kỹ hơn ở ví dụ cuối cùng. Nếu bạn muốn chuyển đổi chuỗi này thành giá trị ngày/giờ bằng cách sử dụng hàm Time , bạn phải chuyển từng vùng con có tên. Để thực hiện điều này, hãy sử dụng hàm With hoạt động trên bản ghi trả Match về:

With(
    Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
   Time( Value( hours ), Value( minutes ), Value( seconds ) )
)

Đối với những ví dụ này, hãy thêm công cụ điều khiển Button, thiết lập thuộc tính OnSelect thành công thức sau, rồi chọn nút:

Set( pangram, "The quick brown fox jumps over the lazy dog." )
Công thức Mô tả Kết quả
Match( pangram, "THE", IgnoreCase ) Tìm tất cả các nội dung khớp với "THE" trong chuỗi văn bản nằm trong biến pangram. Chuỗi chứa hai kết quả khớp nhưng chỉ có giá trị khớp đầu tiên được trả về vì bạn đang sử dụng chứ Match không phải MatchAll. {
FullMatch: "The",
StartMatch: 32
}
MatchAll( pangram, "the" ) Tìm tất cả các nội dung khớp với "the" trong chuỗi văn bản nằm trong biến pangram. Hàm có phân biệt chữ hoa chữ thường, nên chỉ tìm thấy trường hợp thứ hai của "the". MatchAll cho pangram.
MatchAll( pangram, "the", IgnoreCase ) Tìm tất cả các nội dung khớp với "the" trong chuỗi văn bản nằm trong biến pangram. Trong trường hợp này, hàm không phân biệt chữ hoa chữ thường, nên tìm thấy cả hai trường hợp của từ này. MatchAll bằng IgnoreCase.
MatchAll( pangram, "\b\wo\w\b" ) Tìm tất cả các từ có 3 chữ cái có chữ "o" ở giữa. "nâu" bị loại trừ vì nó không phải là từ ba chữ cái và do đó, không khớp với "\b" (ranh giới từ). MatchAll cho pangram với b, wo, w và b.
Match( pangram, "\b\wo\w\b\s\*(?<between>\w.+\w)\s\*\b\wo\w\b" ) So khớp tất cả các ký tự giữa "fox" và "dog". {
trong khoảng: "nhảy qua lười biếng",
FullMatch: "cáo nhảy qua lười biếng",
StartMatch: 17
}

Để xem kết quả của bộ MatchAll sưu tập:

  1. Trong màn hình trống, hãy chèn điều khiển bộ sưu tập dọc trống .

  2. Đặt thuộc tính Items của bộ sưu tập thành MatchAll( pangram, "\w+" ) hoặc MatchAll( pangram, MultipleLetters ).

    Thư viện mục.

  3. Chọn "Add an item from the Insert tab" ("Thêm một mục từ tab Chèn") ở giữa công cụ điều khiển thư viện để chọn mẫu của thư viện.

  4. Thêm công cụ điều khiển Nhãn vào mẫu của thư viện.

  5. Đặt thuộc tính Văn bản của nhãn thành ThisItem.FullMatch.

    Thư viện chứa từng từ trong văn bản mẫu của chúng tôi. Để xem tất cả các từ trên một màn hình, hãy đổi kích cỡ mẫu của bộ sưu tập và điều khiển nhãn.

    Thuộc tính văn bản.