[Powered by Google Translate] [Hội thảo: Tương quan các mẫu với biểu hiện thường xuyên]
[Đại học John Mussman-Harvard]
[Đây là CS50.-CS50.TV]
Được rồi. Vâng, chào đón tất cả mọi người. Đây là CS50 2012.
Tên tôi là John, và tôi sẽ nói hôm nay về biểu thức thông thường.
Biểu thức thông thường chủ yếu là một công cụ, nhưng cũng đôi khi sử dụng
trong mã tích cực về cơ bản phù hợp với mô hình và dây.
Vì vậy, đây là một truyện tranh web từ VNAV.
Trong truyện tranh này có một bí ẩn giết người mà kẻ giết người có
theo sau ai đó đi nghỉ, và các nhân vật chính phải
tìm kiếm thông qua 200 MB của các email tìm kiếm một địa chỉ.
Và chúng được về để cho lên khi một người biết biểu thức thông thường -
có lẽ là một siêu anh hùng - leo thang xuống và viết một số mã
và giải quyết những bí ẩn giết người.
Vì vậy, có lẽ đó sẽ là một cái gì đó mà bạn sẽ được trao quyền để làm
sau buổi hội thảo này.
Chúng tôi chỉ cần đi để cung cấp một giới thiệu ngắn gọn về ngôn ngữ
và cung cấp cho bạn đủ đủ tiền để đi sau khi nhiều nguồn lực hơn mình.
>> Biểu thức để thường xuyên nhìn về cơ bản như thế này.
Đây là một biểu hiện thường xuyên trong Ruby.
Nó không phải là terribly khác nhau qua ngôn ngữ.
Chúng tôi chỉ có trên dấu gạch chéo để bắt đầu và đánh dấu các biểu hiện thường xuyên trong Ruby.
Và đây là một biểu hiện thường xuyên để tìm trong mô hình địa chỉ email.
Vì vậy, chúng ta thấy ở các bit đầu tiên sẽ cho bất kỳ ký tự chữ và số.
Đó là bởi vì địa chỉ email thường xuyên phải bắt đầu với một chữ cái.
Và sau đó bất kỳ ký tự đặc biệt tiếp theo là biểu tượng @.
Và sau đó điều tương tự cho tên miền.
Và sau đó từ 2 đến 4 ký tự để tìm kiếm các com.,. Net, và như vậy.
Vì vậy, đó là một ví dụ của biểu thức chính quy.
Vì vậy, thường xuyên biểu thức là giao thức cho việc tìm kiếm patters trong văn bản.
Họ làm so sánh, lựa chọn, và thay thế.
Vì vậy, một ví dụ thứ ba là tìm kiếm tất cả các số điện thoại kết thúc 54 trong một thư mục.
Vì vậy, trước khi David trích lập thư mục CS50 chúng ta có thể tìm kiếm
một mô hình mà chúng tôi có dấu ngoặc đơn sau đó 3 số sau đó kết thúc ngoặc,
3 số lượng nhiều hơn, một dấu gạch ngang, 2 con số, và sau đó 54.
Và đó sẽ là cơ bản cách chúng ta đưa ra một biểu hiện thường xuyên để tìm kiếm đó.
>> Vì vậy, có - chúng tôi đã thực hiện một số điều trong CS50 có một chút như
biểu thức thông thường, vì vậy - ví dụ - trong tập tin dictionary.C
cho phép đặt vấn đề kiểm tra bạn có thể đã sử dụng fscanf
đọc trong một từ trong từ điển.
Và bạn sẽ nhìn thấy 45s tỷ lệ phần trăm là tìm kiếm một chuỗi 45 ký tự.
Vì vậy, nó có phần giống như một biểu hiện thường xuyên thô sơ.
Và bạn có thể có 45 nhân vật phù hợp với các hóa đơn có
và chọn những người lên.
Và sau đó là ví dụ thứ hai trong vấn đề lập trình web mới nhất
đặt trong mã phân phối dành cho php chúng ta thực sự không có một biểu hiện thường xuyên đơn giản.
Và điều này được chỉ đơn giản là tìm kiếm để kiểm tra xem trang web đó là thông qua trong
phù hợp hoặc đăng nhập hoặc đăng xuất đăng ký. PHP.
Và sau đó trở về đúng hay sai dựa trên đó phù hợp với biểu hiện thường xuyên.
>> Vì vậy, khi bạn sử dụng biểu thức chính quy?
Tại sao anh lại ở đây ngày hôm nay?
Vì vậy, bạn không muốn sử dụng biểu thức thông thường khi có cái gì đó
hiện công việc cho bạn thậm chí dễ dàng hơn.
Vì vậy, XML và HTML thực sự khá khó khăn
viết biểu thức thông thường như chúng ta sẽ thấy trong một chút.
Vì vậy, có phân tích cú pháp dành riêng cho những ngôn ngữ.
Bạn cũng cần phải đồng ý với những đánh đổi thương mại và chính xác thường xuyên.
Nếu bạn đang cố gắng - vì vậy chúng ta đã thấy một biểu hiện thường xuyên cho một địa chỉ email,
nhưng nói rằng bạn muốn có một địa chỉ email cụ thể và dần dần
biểu hiện thường xuyên có thể trở nên phức tạp hơn vì nó đã trở thành chính xác hơn.
Vì vậy, đó sẽ là một thương mại giảm.
Bạn phải chắc chắn rằng bạn đang ổn định với các biểu hiện thường xuyên.
Nếu bạn biết chính xác những gì bạn đang tìm kiếm nó có thể có ý nghĩa hơn
để đưa vào thời gian và viết phân tích cú pháp hiệu quả hơn.
Và cuối cùng có một vấn đề lịch sử với sự đều đặn
các biểu thức và ngôn ngữ.
Biểu thức thông thường là thực sự mạnh hơn
biểu thức thông thường mỗi nói trong một ý nghĩa chính thức.
>> Vì vậy, tôi không muốn đi quá xa vào các lý thuyết chính thức,
nhưng hầu hết các ngôn ngữ mà chúng ta đang trong thực sự là không thường xuyên.
Và đây là lý do tại sao biểu thức thông thường đôi khi không được coi là tất cả những gì an toàn.
Vì vậy, về cơ bản có một hệ thống phân cấp Chomsky cho các ngôn ngữ,
và biểu thức thông thường được xây dựng bằng cách sử dụng công đoàn, nối,
và các hoạt động sao Kleene rằng chúng ta sẽ thấy trong một vài phút.
Nếu bạn quan tâm về mặt lý thuyết có khá nhiều xảy ra ở đó dưới mui xe.
>> Vì vậy, một lịch sử ngắn gọn - chỉ với bối cảnh ở đây - bộ thường xuyên đã đưa ra
trong những năm 1950, và sau đó chúng tôi đã biên tập đơn giản mà
kết hợp biểu thức thông thường - chỉ tìm kiếm chuỗi.
Grep - đó là một công cụ dòng lệnh - là một trong những người đầu tiên
công cụ rất phổ biến mà kết hợp biểu thức thông thường trong những năm 1960.
Trong thập niên 80, Perl được xây dựng - là một ngôn ngữ lập trình
kết hợp biểu thức thông thường rất nổi bật.
Và sau đó gần đây chúng tôi đã có Perl biểu thức chính quy tương thích
giao thức cơ bản trong các ngôn ngữ khác mà sử dụng nhiều cú pháp tương tự.
Tất nhiên sự kiện quan trọng nhất là vào năm 2008
nơi có các biểu hiện thường xuyên quốc gia ngày đầu tiên,
mà tôi tin là ngày 01 tháng 6 nếu bạn muốn ăn mừng đó.
>> Một lần nữa, nhiều hơn chỉ là một chút lý thuyết ở đây.
Vì vậy, có một vài cách khác nhau để xây dựng biểu thức thông thường.
Một cách đơn giản là xây dựng các biểu hiện mà bạn sẽ
chạy trên chuỗi giải thích - về cơ bản xây dựng một mini-chương trình nhỏ mà
sẽ phân tích từng phần của chuỗi xem, "Ồ, điều này phù hợp với những biểu hiện thường xuyên hay không?"
Và sau đó chạy đó.
Vì vậy, nếu bạn có một biểu hiện rất nhỏ thường xuyên, điều này có lẽ
cách hiệu quả nhất để làm điều đó.
Và sau đó nếu bạn - một lựa chọn khác là để giữ cho xây dựng lại
biểu hiện như bạn đi, và đó là khả năng mô phỏng.
Và những nỗ lực ban đầu tại các thuật toán biểu thức chính quy là
tương đối đơn giản và tương đối nhanh, nhưng không có nhiều tính linh hoạt.
Vì vậy, để làm thậm chí một số trong những điều mà chúng ta sẽ xem xét
hôm nay chúng tôi đã phải làm thường xuyên biểu hiện phức tạp hơn
triển khai có nguy cơ bị chậm hơn nhiều, vì thế đó là một cái gì đó để nhớ
Có còn là một biểu thức từ chối thường xuyên của nhiều cuộc tấn công
khai thác tiềm năng cho việc thực hiện mới hơn của
biểu thức thông thường để trở nên rất phức tạp.
Và trong nhiều ý nghĩa mà chúng ta đã thấy trong các cuộc tấn công tràn bộ đệm,
bạn có xâm nhập có thể bằng cách làm cho các vòng lặp đệ quy
tàn phá năng lực của bộ nhớ.
Và bằng cách này Regexen là một trong những số nhiều chính thức của biểu thức chính quy
bằng cách tương tự để bò trong Anglo-Saxon.
>> Được rồi, do Thư viện Python nhiều bạn ở đây trong người có máy tính Mac,
do đó, bạn thực sự có thể kéo này lên trên màn hình của bạn.
Biểu thức thông thường được xây dựng vào Python.
Và như vậy Python được cài đặt sẵn trên máy tính Mac và cũng có sẵn trực tuyến tại liên kết này.
Vì vậy, nếu bạn đang xem, bạn có thể tạm dừng và chắc chắn rằng bạn có Python
như chúng tôi chơi xung quanh đây.
Có một trực tuyến sử dụng, vì vậy nếu bạn chỉ cần gõ Python vào máy tính của bạn
bạn sẽ thấy rằng phiên bản đi lên trong các thiết bị đầu cuối.
Vì vậy, tôi cung cấp một liên kết để hướng dẫn cho phiên bản 2 của Python cũng như một cheat sheet.
Có một phiên bản 3 của Python, nhưng Mac của bạn không nhất thiết phải
đi kèm với đó cài đặt sẵn.
Vì vậy, không quá khác nhau.
Được rồi, do một số vấn đề cơ bản của việc sử dụng biểu thức thông thường trong Python.
>> Vì vậy, ở đây tôi sử dụng một biểu hiện rất đơn giản, vì vậy tôi đã Python tái nhập khẩu
và sau đó lấy kết quả của re.search.
Và việc tìm kiếm có 2 đối số.
Đầu tiên là biểu hiện thường xuyên, và thứ hai là văn bản
hoặc chuỗi bạn muốn phân tích.
Và sau đó tôi in ra result.group.
Vì vậy, đây là 2 chức năng cơ bản, chúng ta sẽ thấy ngày nay
trong học tập về biểu thức thông thường.
Vì vậy chỉ cần phá vỡ biểu hiện thường xuyên ở đây
h và sau đó \ w và sau đó m do đó, \ w chỉ chấp nhận bất kỳ chữ cái trong đó.
Vì vậy, ở đây chúng tôi đang tìm kiếm một "h" và sau đó một chữ cái
và sau đó m, vì vậy đây có thể sẽ phù hợp với giăm bông
trong, "Abraham Lincoln và ham bánh mì."
Đây là kết quả của nhóm đó.
Một điều mà chúng ta có thể làm là sử dụng dây của chúng tôi trước khi văn bản trong Python.
Vì vậy, tôi đoán tôi sẽ đi trước và kéo mà lên đây.
Python tái nhập khẩu.
Và nếu tôi đã làm điều tương tự - cho chúng tôi nói rằng văn bản là,
"Abraham," chúng ta hãy phóng to - có chúng tôi đi.
Văn bản là, "Abraham ăn giăm bông."
Được rồi, và sau đó kết quả = re.search.
Và sau đó biểu hiện của chúng tôi có thể h, và sau đó tôi sẽ làm chấm m.
Vì vậy, dấu chấm chỉ mất bất kỳ nhân vật đó không phải là một dòng sản phẩm mới bao gồm cả số,
dấu hiệu tỷ lệ phần trăm, bất cứ điều gì như thế.
Và sau đó văn bản - sự bùng nổ - và sau đó result.group--yeah.
Vì vậy, đó chỉ là cách để thực hiện các chức năng cơ bản ở đây.
Nếu chúng ta có một chiếc nhẫn văn bản đó - rằng văn bản điên - có nói rất nhiều chém lại
và dây bên trong và những thứ có thể trông giống như trình tự thoát ra,
sau đó chúng tôi có thể muốn sử dụng các đầu vào văn bản thô để đảm bảo rằng được chấp nhận.
Và rằng chỉ cần nhìn như thế.
Vì vậy, nếu chúng ta đang tìm kiếm cho mỗi người trong số họ trong đó chúng ta không nên tìm thấy bất cứ điều gì.
Nhưng đó là cách bạn sẽ thực hiện nó, chỉ cần trước khi chuỗi
các biểu hiện thường xuyên bạn đặt chữ r.
>> Được rồi, vì vậy hãy để chúng tôi tiếp tục đi.
Được rồi - vì vậy chúng ta hãy xem một vài mẫu lặp đi lặp lại ở đây.
Vì vậy, một điều mà bạn muốn làm là lặp lại điều
như bạn đang tìm kiếm thông qua văn bản.
Vì vậy, để làm một theo sau bởi bất kỳ số b - bạn làm ab *.
Và sau đó có một loạt các quy tắc khác nữa.
Và bạn có thể xem tất cả các lên, tôi sẽ chỉ cần chạy qua một số các
thường được sử dụng những người thân.
Vì vậy, ab + là một tiếp theo bất kỳ N lớn hơn 0 b.
ab? là một tiếp theo 0 hoặc 1 b.
ab {N} là một tiếp theo N b, và sau đó như vậy.
Nếu bạn có 2 con số trong dấu ngoặc nhọn bạn đang xác định một phạm vi
mà có thể có thể xuất hiện.
Vì vậy, chúng tôi sẽ xem xét thêm vào một vài mô hình lặp đi lặp lại trong một phút.
Vì vậy, 2 điều cần lưu ý khi sử dụng các mô hình phù hợp với các công cụ ở đây.
Vì vậy, chúng ta muốn nhìn vào hm của, "Abraham Lincoln làm cho bánh sandwich giăm bông."
Vì vậy, tôi đã thay đổi tên Abraham Lincoln với Abraham.
Và bây giờ chúng tôi đang tìm kiếm những gì được trả về bởi chức năng tìm kiếm này,
và nó chỉ trả về ham trong trường hợp này.
Và nó làm thế bởi vì chỉ tìm kiếm tự nhiên có hầu hết các hàng đợi bên trái.
Và tất cả các biểu thức thông thường, trừ khi bạn chỉ định khác sẽ làm điều đó.
Nếu chúng ta muốn tìm tất cả có một chức năng cho điều đó - tìm thấy tất cả.
Vì vậy, mà chỉ có thể trông giống như tất cả = re.findall ('h.m, văn bản)
và sau đó all.group ().
Tất cả các sản xuất cả ham và ham, trong trường hợp này cả hai dây trong Abraham mỗi ham.
Vì vậy, đó là một lựa chọn khác.
>> Tuyệt vời. Một điều khác cần lưu ý là biểu thức thông thường mất lớn nhất trực giác.
Chúng ta hãy nhìn vào ví dụ này.
Chúng tôi đã làm điều đó nhất tìm kiếm bên trái ở đây, và sau đó tôi đã cố gắng tìm kiếm lớn hơn
sử dụng các nhà điều hành sao Kleene.
Vì vậy, cho, "Abraham Lincoln làm cho bánh sandwich giăm bông," và tôi chỉ có trở lại
m như một kết quả.
Lý do cho sự sai lầm mà là tôi có thể đã thực hiện bất kỳ số lượng
h là bởi vì tôi đã không chỉ định bất cứ điều gì để đi ở giữa h và m.
Ví dụ chỉ có mà đã có m - các ví dụ chỉ có với m trong nó
và bất kỳ số lượng của h chỉ là những chuỗi m.
Sau đó, tôi đã thử nó một lần nữa, tôi nói: "Được rồi, chúng ta có được những nhóm lớn nhất thực tế ở đây."
Và sau đó tôi đã làm h. * M, vì vậy mà chỉ cần trả bất kỳ số lượng ký tự giữa h và m.
Và nếu bạn chỉ là bắt đầu và nghĩ, "Ồ, được rồi, và điều này sẽ
làm cho tôi ham, "nó thực sự mất tất cả mọi thứ từ các h trong Abraham Lincoln
tất cả các con đường lên đến hết ham.
Đó là tham lam, nó thấy h - tất cả các văn bản khác này - m,
và đó là những gì nó cần in
Đây là một đặc biệt nghiêm trọng - đây là một tính năng chúng tôi cũng có thể
chỉ định cho nó không được tham lam sử dụng các chức năng khác.
Nhưng đây là một cái gì đó chúng ta phải lưu ý đặc biệt
khi nhìn vào văn bản HTML, đó là lý do mà
biểu thức thông thường là khó khăn cho HTML.
Bởi vì nếu bạn có một thẻ mở HTML và sau đó rất nhiều thứ ở giữa
và sau đó một số khác đóng cửa HTML tag nhiều sau này trong chương trình,
bạn vừa ăn lên rất nhiều mã HTML của bạn có thể do nhầm lẫn.
>> Tất cả các quyền - nhân vật rất đặc biệt, giống như nhiều ngôn ngữ khác,
chúng ta thoát khỏi bằng cách sử dụng dấu gạch chéo.
Vì vậy, chúng ta có thể sử dụng dấu chấm để xác định bất kỳ nhân vật ngoại trừ một dòng mới.
Chúng tôi có thể sử dụng thoát w để xác định bất kỳ ký tự chữ cái.
Và bằng cách tương tự thoát d cho bất kỳ số nguyên - nhân vật số.
Chúng tôi có thể xác định - chúng ta có thể sử dụng dấu ngoặc để xác định biểu thức có liên quan.
Vì vậy, điều này sẽ chấp nhận a, b, hoặc c.
Và chúng tôi cũng có thể chỉ định hoặc tùy chọn hoặc là một hoặc b.
Ví dụ: - nếu chúng ta đang tìm kiếm nhiều khả năng
trong ngoặc đơn, chúng tôi có thể sử dụng các nhà điều hành hoặc như trong -
vì vậy chúng ta quay trở lại ví dụ này đây.
Và bây giờ chúng ta hãy - chúng ta hãy quay trở lại với ví dụ này ở đây, và sau đó
có ae - vì thế này nên trở lại - tôi đoán đây vẫn là Abraham.
Vì vậy điều này - nếu chúng ta làm tất cả - tuyệt vời.
Vì vậy, chúng ta hãy cập nhật các văn bản ở đây.
"Abraham ăn giăm bông trong khi viền của mình -. Trong khi viền" Tuyệt vời.
Tất cả. Tuyệt vời. Bây giờ chúng ta có được giăm bông, thịt nguội và hem.
Trong khi viền - trong khi ồn ào với anh - trong khi ồn ào để hem anh. Tuyệt vời.
Cùng một điều.
Bây giờ tất cả trở về vẫn chỉ là giăm bông, thịt nguội và hem mà không chọn lên trên hum hoặc anh ta.
Tuyệt vời - vì vậy những gì nếu chúng ta muốn nhìn vào một trong hai điều đó - vì vậy chúng tôi có thể cũng làm
anh ta hay - chúng tôi sẽ quay trở lại đó.
Được rồi - vì vậy - tất cả các quyền - trong các vị trí bạn cũng có thể sử dụng dấu nháy hoặc ký hiệu đô la
để xác định rằng bạn đang tìm kiếm một cái gì đó ở đầu hoặc cuối của một chuỗi.
Hoặc bắt đầu hoặc kết thúc của một từ.
Đó là một cách để sử dụng.
>> Được rồi - vì vậy chúng ta chơi xung quanh với một khối lớn hơn một chút của văn bản.
Chúng ta hãy nói hàng này đây - tuyên bố này đây.
Sức mạnh của biểu thức chính quy là họ có thể xác định mô hình
không chỉ cố định ký tự.
Chúng ta hãy làm cho - cho chúng tôi gọi khối này.
Sau đó chúng tôi sẽ đọc tất cả điều đó nhập
Và sau đó có một - chúng ta hãy làm cho tất cả =; một số điều chúng ta có thể tìm kiếm ở đây là lợi nhuận vì vậy những gì?
Chúng ta có thể tìm kiếm các biểu hiện tai.
Không phải là rất thú vị. Làm thế nào về điều đó? Chúng tôi sẽ xem những gì sẽ xảy ra.
Tôi đã cho nó một vấn đề.
Vì vậy, bất kỳ số điều trước khi tái và tất cả.
Vì vậy mà phải trả lại tất cả mọi thứ từ đầu đến tất cả lại có lẽ một vài lần.
Và sau đó ở đây chúng tôi có sức mạnh của biểu thức thông thường là họ
có thể xác định mẫu không chỉ các nhân vật ở đây là.
Vì vậy, tất cả các con đường lên đến lại cuối cùng, nó bắt đầu với hầu hết trái và là tham lam.
Chúng ta hãy xem - những gì khác chúng ta có thể tìm kiếm.
Tôi đoán một điều nếu bạn quan tâm trong việc tìm kiếm các đại từ cô và anh,
bạn có thể kiểm tra s là bằng 0 hoặc 1
và biểu thức ông, và có lẽ sẽ không quay trở lại -
oh, tôi đoán nó trở về ông bởi vì có chúng tôi đang tìm kiếm sức mạnh, ngày hôm đó, đây được.
Chúng ta hãy cố gắng xác định rằng điều này đã đến lúc bắt đầu một cái gì đó.
Chúng ta hãy xem nếu mà giảm đi.
Vì vậy, chúng ta có thể làm chất béo, và chúng tôi không nhận được bất cứ điều gì vì cô ấy và anh
không xảy ra trong cụm từ này.
Tuyệt vời. Được rồi - vì vậy trở lại với con mèo ở đây.
Mô hình rất phức tạp là làm tổn thương não.
Vì vậy, đó là lý do tại sao chúng ta sử dụng biểu thức thông thường để tránh những vấn đề này.
>> Vì vậy, đây là một số phương thức hữu ích khác bạn có thể chơi với xung quanh.
Chúng tôi đã tìm kiếm ngày hôm nay, nhưng bạn cũng có thể sử dụng kết hợp, tách, FindAll, và các nhóm.
Điều mát mẻ để khác bạn có thể làm với biểu thức thông thường bên cạnh việc chỉ
tìm kiếm mô hình được tham gia một mô hình và tổ chức tất cả các trận đấu -
biến của nó - và sau đó sử dụng những người trong mã của bạn sau này.
Mà có thể khá hữu ích. Những thứ khác có thể được đếm.
Vì vậy, chúng ta có thể đếm số lượng các trường hợp của một mô hình biểu hiện thường xuyên,
và đó là những gì chúng ta có thể sử dụng nhóm các.
Và các chế độ khác nữa cũng có thể.
Vì vậy, tôi chỉ muốn nói thêm một chút về những cách khác bạn có thể sử dụng biểu thức thông thường.
>> Vì vậy, một ứng dụng tiên tiến hơn là trong kết hợp mờ.
Vì vậy, nếu bạn đang tìm kiếm một văn bản cho sự biểu hiện, Julius Caesar,
và bạn nhìn thấy hoặc Gaius Julius Caesar hoặc tên Julius Caesar trong các ngôn ngữ khác,
sau đó bạn cũng có thể muốn chỉ định một số trọng lượng cho những giá trị.
Và nếu nó là đủ gần - nếu nó vượt qua một ngưỡng nào đó - sau đó bạn muốn
để có thể chấp nhận Julius Caesar.
Vì vậy, có một vài hiện thực khác nhau cho rằng trong một vài ngôn ngữ khác.
Dưới đây là một số công cụ khác, Regex Pal - một ứng dụng nhỏ tiện dụng trực tuyến
kiểm tra xem biểu thức thông thường của bạn được cấu tạo một cách chính xác.
Ngoài ra còn có các công cụ độc lập mà bạn có thể chạy từ máy tính của bạn
như siêu Pico, và cũng như chỉ dạy nấu ăn.
Vì vậy, nếu bạn đang làm một dự án có liên quan đến một tấn của biểu thức thông thường
đây có lẽ là nơi đi ra ngoài phạm vi của ngày hôm nay.
Và sau đó chỉ cần cung cấp cho bạn một cảm giác như thế nào phổ biến là
có grep trong Unix, Perl đã được xây dựng trong, và C có PCRE cho C.
Và sau đó tất cả các ngôn ngữ khác cũng có các gói biểu thức chính quy
hoạt động với cú pháp tương tự về cơ bản chúng ta có một hương vị của ngày hôm nay.
PHP, Java, Ruby, và như vậy.
>> Google Code Search thực sự là đáng nói, nó là một trong những
tương đối ít các ứng dụng ra khỏi đó cho phép công chúng truy cập
cơ sở dữ liệu sử dụng biểu thức thông thường.
Vì vậy, nếu bạn nhìn trên Google Code tìm kiếm, bạn có thể tìm mã
nếu bạn đang tìm kiếm một cách thể hiện của một chức năng có thể được sử dụng,
bạn có thể sử dụng một biểu hiện thường xuyên để thấy rằng chức năng được sử dụng trong tất cả các loại trường hợp khác nhau.
Bạn có thể tìm fwrite, và sau đó bạn có thể tìm lá cờ của viết hoặc đọc
nếu bạn muốn một ví dụ về fwrite được sử dụng trong trường hợp đó.
Vì vậy, tương tự như vậy, và đây là một số tài liệu tham khảo.
Điều này sẽ có sẵn trực tuyến là tốt, vì vậy sẽ chuyển tiếp nếu
bạn muốn xem xét Python, grep, Perl - bạn chỉ muốn nhận được một số nguồn cảm hứng
hoặc nếu bạn muốn xem thêm tại lý thuyết đây là một số nhảy ra ngoài nơi.
Cám ơn rất nhiều.
[CS50.TV]