Máy tínhLập trình

Biểu thức chính quy (PHP). PHP: biểu thức thông thường ví dụ

Xa hơn thế giới thông tin là lớn và đa dạng, nó đang mở rộng nhanh chóng và đang phát triển. Bất kỳ giải pháp chỉ là một khoảnh khắc trong quá trình chuyển động nói chung. Kiến thức và kinh nghiệm làm cho nó có thể hiểu được quá trình đạt được mục tiêu, nhưng không bao giờ - không phải là kết quả của việc đạt được nó. Rõ ràng là trong tương lai gần, nói chung có thể nói về kết quả, nhưng điều rất quan trọng là quá trình phấn đấu cho nó là một quá trình thiết yếu và cần thiết.

"Mong muốn và / hoặc tiền lớn" không tạo ra một thuật toán có khả năng những gì một người làm tự nhiên và "tự do", đặc biệt là khi anh ta không nghĩ về những gì anh ta làm. Ở bất kỳ vị trí nào của vấn đề thông tin, có ít nhất một điểm trắng, nhưng đằng sau nó, thường là ngay lập tức, các điểm trống khác có thể nhìn thấy, và nó không nhất thiết là tất cả đều trắng.

Các công nghệ Internet đơn giản hóa truy cập thông tin một cách đáng kể, nhưng câu hỏi - làm thế nào để áp đặt nó vào một cái được mong muốn - không được đơn giản hoá, nhưng lại thu được "khối lượng" công việc mới. Và mặc dù trong PHP biểu thức thông thường khoảng cách rõ ràng là không kiệt sức, họ là một bước tiến quan trọng.

Các hàm đơn giản + thuật toán = mẫu

Cung cấp các biểu thức thông thường, PHP làm giảm đáng kể nội dung của thuật toán, nhưng các chức năng tìm kiếm / thay thế thông thường và các thuật toán xử lý tìm thấy đã không bị mất giá trị. Những ý tưởng mới không ngăn cản cuộc cách mạng thông tin. Tối đa mà bạn có thể tin cậy là một mã nhỏ gọn và khả năng xây dựng một truy vấn tìm kiếm chính xác của nhà phát triển.

Bạn nên biết và áp dụng các biểu thức chính quy cho PHP. Các ví dụ là thuyết phục và hiệu quả. Nhưng phải báo cáo rằng với sự xuất hiện của công cụ tìm kiếm mới, trung tâm trọng lực đã chuyển sang một khuôn mẫu - một loại cơ chế, mặc dù có hiệu quả thay thế nhiều chức năng tìm kiếm đơn giản, điều kiện, chu kỳ và các toán tử khác.

Có:

  • Một công cụ chất lượng và hiện đại là tốt;
  • Để xem và sử dụng kinh nghiệm của đồng nghiệp là quan trọng;
  • Kết hợp thực tế và ảo tưởng - đảm bảo thành công.

Việc đạt được kiến thức, vì nó là cần thiết để hiểu được vấn đề để giải quyết nó, thường có ý nghĩa hơn một kết quả cụ thể.

Các biểu thức chính quy trong PHP được biểu diễn bởi một số hàm trong cú pháp của ngôn ngữ và nhiều ví dụ hữu ích trên Internet. Do các chi tiết cụ thể của cú pháp của ngôn ngữ, các tùy chọn ứng dụng được giới hạn bởi trí tưởng tượng của nhà phát triển, tuy nhiên, cần lưu ý rằng không phải tất cả các mẫu sẽ làm việc. Với PHP, kiểm tra các biểu thức thông thường là cần thiết.

Đơn giản tìm kiếm một ký tự (chuỗi)

Biểu tượng không phải lúc nào cũng là một byte, và thường một nhân vật, như là một tín hiệu cơ bản, mang một ý nghĩa chính xác thêm vào. Mã hóa định nghĩa các ký tự hiển thị trong mã theo những cách khác nhau. Biểu tượng có thể có nhiều lựa chọn: "$" = "USD" = "cu", ... là ý nghĩa chính xác ở đâu đó, nhưng không nhất thiết ở gần, có liên quan đến đồng tiền. Tuy nhiên, ý nghĩa chính xác cũng có thể nằm trong biến PHP, nó luôn luôn bắt đầu bằng ký hiệu "$", nhưng không thể bắt đầu bằng "USD" và "cu".

Trong các chương trình, biểu tượng có thể là tên của một hàm (chuỗi) trong ngữ cảnh: công nhận và thực hiện là từ vùng lập trình hướng đối tượng động, nơi các cấu trúc, chức năng, các biểu thức thông thường PHP được sử dụng trực tiếp để ra quyết định. Biểu tượng được tìm thấy là "đã được thực hiện", nghĩa là nó tự quyết định phải làm gì ở nơi nó được tìm thấy, và nó "coi nó như thế nào" là cần thiết.

Để tìm kiếm một cách đơn giản cho một chuỗi ký tự / không phải là nghề nghiệp đơn giản, và thông tin nhiều hơn là trong một biểu tượng, thì tốt hơn. Không phải lúc nào cũng cần phải tìm kiếm một tá giá thực phẩm tốt nhất, chọn công thức nấu ăn ngon cho bánh nghỉ hoặc quyết định một nhà thầu cho một trần nhà bị treo.

Thường thì cần tối ưu hóa các thuật toán đơn giản với số học thông tin đơn giản hoặc trong các điều kiện khó khăn, khi cần chọn biểu tượng mong muốn từ cơ sở dữ liệu, và đường mà nó cần được tìm thấy - trong một trăm trang web. Trong trường hợp này, giá chọn một biểu tượng bằng thời gian lấy mẫu từ cơ sở dữ liệu, và giá của nơi để tìm kiếm là thời gian tìm kiếm của hàng trăm trang web khét tiếng.

Một biểu tượng đơn độc không phải là một cụm từ hay một vài cụm từ, nó có thể ở bất cứ đâu và nhỏ như bạn muốn. Làm thế nào để xác định chính xác những gì được tìm thấy là những gì bạn đang tìm kiếm?

Ví dụ: tìm kiếm giá cả

Chỉ cần tìm biểu tượng "$" trong văn bản - một chút. Kiểm tra xem có một con số trước khi nó, quá, không phải là luôn luôn đủ. Nếu bạn cung cấp một điểm hoặc hình trước biểu tượng "$", đó là một đảm bảo rằng giá, trong đó các biểu tượng tiền tệ ở phía trước, sẽ không được tính đến. Giá cũng sẽ bị bỏ qua, trong đó loại tiền tệ không được chỉ ra ở tất cả, nhưng có một dấu hiệu rõ ràng trên trang.

Nói chung, giải pháp của vấn đề theo cách thông thường làm tăng các thuật toán vượt ra ngoài sự công nhận và sẽ mất rất nhiều thời gian. Trong khi đó, bằng cách sử dụng một biểu thức chính quy, số lượng PHP sẽ không gặp vấn đề.

$ CContents = preg_match_all ("/ [0-9] + ([\ $] | usd | у \ .E \. | Уе) {1} / i";

"Tìm e-mail - 2usd;
";
"Tìm e-mail - 2e,
";
"Work e-mail - уе2;
";
"Kiểm tra e-mail - $ 13", $ aResult);
. '; '. Implode (',', $ aResult [0]). '
'.

Câu trả lời là: "2; 2usd, 2u.e.", nhưng sẽ không tìm thấy bất cứ điều gì trong dòng: "check e-mail - $ 13".

Cung cấp trong mẫu sự hiện diện của một biểu tượng ở phía trước hoặc phía sau, bạn có thể nhanh chóng đạt được mục tiêu trong phần lớn các trường hợp.

$ CContents = preg_match_all ("/ ([0-9] + ([\ $] | usd | у \. E \. | Уе) {1}) | (([$] | usd | у \. \\. | Ye) {1} [0-9] +) / i ";
"Tìm e-mail - 2usd;
";
"Tìm e-mail - 2e,
";
"Work e-mail - уе2;
";
"Kiểm tra e-mail - $ 13", $ aResult);
. '; '. Implode (',', $ aResult [0]). '
'.

Kết quả: "4; 2usd, 2u.e., ye2, 13 đô la".

Giới thiệu logic không lường trước

Biểu thức chính quy PHP cung cấp, giống như các công cụ khác, nhưng không bắt buộc phải sử dụng chúng theo các quy tắc của nó hoặc sử dụng các chức năng dòng lệnh khác do cú pháp cung cấp.

Bạn có thể biến chuỗi tìm kiếm thành một mảng trước khi bắt đầu tìm kiếm và chia thành các thành phần theo tiêu chí sơ bộ. Một cặp đơn giản các chức năng nổ () và implode () thường đơn giản hóa và tăng tốc giải pháp.

Ví dụ, theo kết quả của công việc sơ bộ, một dãy các hàng (số liệu) đã được hình thành xung quanh huyện về bao nhiêu làng từng thôn đã thu thập được: Tên làng và số lượng thu thập, và nếu có một số doanh nghiệp trong làng thì tên của Công ty nằm trong dãy. " Và như vậy đối với tất cả các doanh nghiệp. Không thể tính toán tổng số tiền thu được trong trường hợp này, nhưng nếu bạn thực hiện impode (";", $ aResult), sẽ có một dòng dài, trong đó các cặp - Cây Name / Cây Tên. Tên của Enterprise - khối lượng được thu thập - sẽ được liệt kê qua ";". Sau khi đã thực hiện việc đảo ngược đối với phương thức nhận được, explode (";", $ aResult) - một mảng của tất cả những người thu thập được và số lượng nó thu thập được, sau đó, loại bỏ tất cả các ký tự không phải là số khỏi các dòng, chúng ta chỉ có các chữ số, tổng của tổng số khối lượng.

Trong ví dụ này, các biểu thức chính quy trong PHP cho phép bạn không tìm kiếm không cần thiết, chúng chỉ đơn giản và dễ dàng trích xuất các giá trị số mong muốn. Nhanh chóng và hiệu quả, bất kể tên của các thôn và doanh nghiệp là bao lâu. Quyết định này không phải là lý tưởng, nhưng nó cho thấy rằng nó không phải luôn luôn cần thiết để làm theo các quy tắc. Thường có thể đạt được mong muốn theo một cách khác thường.

Tóm tắt từ phía kỹ thuật, từ việc mã hóa

Cú pháp của thuật toán không nói nó trông như thế nào. Tuy nhiên, cung cấp cùng mã hóa trang, kịch bản và dòng (được tìm kiếm và trong đó việc tìm kiếm được thực hiện), bạn có thể đắm mình trong công việc bên ngoài khía cạnh kỹ thuật của nó.

Nó không chỉ cần biết phải tìm kiếm cái gì, mà còn phải làm gì nữa, khi nào, bằng số lượng nào, cái gì sẽ thay đổi và làm thế nào. Chính thức, các biểu thức PHP thông thường được thực hiện như là một cơ chế đầy đủ, đầy đủ, đầy đủ chức năng, nhưng vì nhiều lý do thực hiện các đối tác của nó bằng các ngôn ngữ khác nhau là khác nhau. Theo nguyên tắc chung, trước khi bạn có thể chuyển một mẫu vào môi trường công cụ này hoặc một môi trường công cụ khác cho một tác vụ cụ thể, bạn cần phải thực hiện một sự thích ứng định tính, thực hiện kiểm tra đối với tất cả các biến thể có thể có của dữ liệu ban đầu.

Ngay cả khi bạn sử dụng kinh nghiệm phát triển riêng của mình trong PHP, các biểu thức thông thường, ví dụ, các mẫu và các cấu trúc yêu cầu xác minh chặt chẽ. Chức năng ngôn ngữ, cú pháp và môi trường thực thi tự động thay đổi.

Cấu trúc và nội dung của mẫu

Những gì đã được viết dưới dạng kết hợp các chức năng tìm kiếm, các toán tử điều kiện, thay thế các thao tác, chèn, xóa, là một chuỗi các ký tự theo các quy tắc nhất định - một mẫu biểu thức chính quy. Trên thực tế, khối lượng đáng kể được mã hoá theo một cách xác định chặt chẽ và được thực hiện theo các quy tắc cụ thể.

Cũng như bạn không thể gỡ lỗi bất kỳ câu lệnh ngôn ngữ nào, bạn không thể gỡ lỗi một mẫu biểu thức chính quy, quá trình này chỉ có thể được mô phỏng. Theo nguyên tắc chung, biến thể được chấp nhận: nó hoạt động - nó không hoạt động. Cú pháp là rất đơn giản, mặc dù nhận thức của nó, đặc biệt là ở đầu của công việc, là rất khó khăn.

Ví dụ về một biểu thức đơn giản

Trong một phiên bản đơn giản, mẫu phù hợp với dòng:

$ CContents = preg_match ("/ asdf / i", "asdf", $ aResult). '; '. Implode (',', $ aResult).

Kết quả là "1; asdf", vì chức năng kết thúc công việc của nó trên sự kết hợp đầu tiên của mẫu. Kết quả sẽ giống nếu bạn nhìn vào dòng "aaaasdf" và trong dòng "zzzasdfvvv". Nếu bạn chỉ định ký tự đầu tiên và / hoặc cuối cùng, kết quả sẽ không rõ ràng:

$ CContents = preg_match ("/ ^ asdf / i", "asdf", $ aResult). '; '. Implode (',', $ aResult). '
';
$ CContents = Preg_match ("/ asdf $ /", "asdf", $ aResult). '; '. Implode (',', $ aResult). '
'.

Kết quả sẽ là: 1; Asdf1; Asdf.

Các ký tự "^" và "$" cho biết nơi mẫu bắt đầu và kết thúc như thế nào. Kết quả của hàm preg_match là số lượng kết hợp, có thể là 0, 1 hoặc false nếu phát hiện lỗi. Tham số thứ ba là một mảng - phần tử duy nhất tìm được nằm. Nếu bạn sử dụng chức năng preg_match_all (), việc tìm kiếm tiếp tục đến cuối dòng.

$ CContents = preg_match ("/ asdf / i", "asdf123asdf456asdf789", $ aResult). '; '. Implode (',', $ aResult). '
';
$ CContents = Preg_match_all ("/ asdf / i", "asdf123asdf456asdf789", $ aResult). '; '. Implode (',', $ aResult [0]). '
'.

Kết quả:

1; Asdf
3; Asdf, asdf, asdf.

Nếu bạn không sử dụng hướng dẫn đặc biệt, thì mỗi ký tự định nghĩa chính nó và vị trí của nó, bất kể mã hoá chuỗi và mã hoá của mẫu. Người lập trình có nghĩa vụ phải lưu ý rằng việc mã hóa các yếu tố này là chính xác so với mỗi mã khác và mã hoá của trang.

PHP chức năng để làm việc với các biểu thức thông thường

Biểu thức chính quy trong PHP là các chuỗi kí tự được viết bằng một cách nhất định. Thông thường, bằng cách tương tự với các ngôn ngữ lập trình khác, chúng được viết bằng ký tự "/" ... "/" và được đặt trong dấu ngoặc kép, tùy thuộc vào thuật toán bạn có thể sử dụng đơn và đôi.

Chức năng chính của php preg phù hợp với các biểu thức chính quy sử dụng như là một kết hợp mô hình và dừng lại khi nó lần đầu tiên tìm thấy nó, biến thể của nó với hậu tố _all tìm kiếm tất cả các kết hợp và trả về một mảng của chúng. Chức năng preg replace thay thế cho mỗi match match phù hợp, nó có thể làm việc với mảng, cho phép bạn thiết kế một tìm kiếm và thực hiện một sự thay thế cho nhiều sự lựa chọn.

Các tùy chọn thú vị để làm việc với các biểu thức thông thường có thể được phát triển bằng cách sử dụng hàm preg_replace_callback, không có văn bản để thay thế, nhưng tên của chức năng sẽ thực hiện thay thế như vậy. Ngoài giá trị thực tế, bạn có thể thực hiện các cơ chế xác nhận mẫu, đóng một vai trò quan trọng trong việc phát triển và gỡ lỗi sau.

Phạm vi của các biểu thức thông thường

Vì các văn bản siêu văn bản là thông tin chính thức, nên chúng là tài liệu nguồn. Một số lượng lớn mẫu thiết kế đã được phát triển để xử lý hiệu quả một lượng lớn thông tin. Một phần quan trọng của công việc này được thực hiện bởi các cơ chế được xây dựng trong các hệ thống quản lý nội dung khác nhau (CMS).

Không có gì đáng ngạc nhiên, nhiều CMS đã trở thành tiêu chuẩn thực tế để xây dựng các trang web, và, kèm theo (các công ty phát triển) cập nhật, họ không cần phải tự phát triển các mẫu. Tuy nhiên, bên ngoài các hệ thống như vậy, có kinh nghiệm với biểu thức thông thường rất hữu ích.

Biểu thức thông thường và thông tin thực tế

Một khu vực quan trọng của việc áp dụng các biểu thức thông thường trong PHP được hình thành bởi sự xuất hiện của các thư viện PHPOffice. Làm việc với các tài liệu và bảng tính luôn là và rất quan trọng, và tiêu chuẩn OOXML cho phép không chỉ để tháo rời các tài liệu thực, mà còn để tạo chúng theo chương trình.

Nhờ sự phát triển của Hypertext và PHP nói riêng, có một cơ hội thực sự để tự động hoá việc sản xuất các tài liệu dạng chuẩn, ví dụ như hóa đơn thanh toán, báo cáo, kế hoạch kinh doanh và các đối tượng thông tin khác có cấu trúc và nội dung có thể được hình thành và tự động hóa.

Cùng với ứng dụng mô tả ngôn ngữ OOXML, quá trình phát triển biểu thức thông thường có sự khác biệt đáng kể so với công việc truyền thống với ngôn ngữ đánh dấu HTML và CSS ở nơi đầu tiên. Một tài liệu thực, bên cạnh đánh dấu và thêm vào nội dung thực tế chính nó, có nhiều chi tiết. Ví dụ: một tài liệu được tạo tự động bởi chương trình sẽ có nội dung nghiêm ngặt và chính xác. Tài liệu được tạo bởi một người hoặc được xử lý bởi nó sẽ có nội dung được viết trên một tập hợp các thẻ. Bất kỳ công việc với tài liệu dẫn đến một thực tế là ngữ nghĩa của nó có thể vẫn là một, nhưng sơn bên trong bằng một số khác nhau của thiết kế khác nhau.

Thông tin và tình hình tự nhiên

Một người luôn quan tâm đến giải pháp của một vấn đề, tuyên bố đó là thông tin, và kết quả là thông tin cũng sẽ được đưa ra. Sau khi trình bày bản tuyên bố về vấn đề dưới dạng một tài liệu, một người nhận được một ngữ nghĩa nhất định, trong khi đặc tả kỹ thuật (thay đổi, làm rõ văn bản, xóa, chỉnh sửa) không chỉ dẫn đến nhiều biến thể của một tài liệu, mà còn cho các phiên bản có nội dung khác nhau.

Cụ thể, nhiệm vụ đặt ra bởi cụm từ "Giải quyết sự trốn chạy bậc hai", sau khi chỉnh sửa sẽ không giống như sau: "Giải phương trình bậc hai". Nếu lỗi đầu tiên được sửa chữa đầu tiên và sau đó là lỗi thứ hai, thì thông tin tự nhiên trong kiểu OOXML có thể là: "[Giải] [] [thẳng] [e] [] [hurrah] [in] [nenia]", nhưng đây không phải là Đảm bảo rằng đây là cách nhiệm vụ sẽ tìm trong các thẻ OOXML (dấu ngoặc vuông giả lập dấu ngoặc đơn của các thẻ).

Bạn có thể thu thập thông tin một cách dễ dàng sau mỗi quá trình chỉnh sửa tác vụ, nhưng mỗi lần thủ tục này sẽ được thực hiện theo một thuật toán khác. Các biểu thức thông thường, như một công cụ chính thức hoá nhiệm vụ thông tin, đã trở thành một đường dẫn từ các cấu trúc siêu văn bản chính thức đến thông tin tự nhiên.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 vi.birmiss.com. Theme powered by WordPress.