Your TIL title
TIL
641
White

h4212421 viết ngày 12/08/2016

StringRegExp trong AutoIT

Cấu trúc của StringRegExp

StringRegExp($chuỗi_vào, $bộ_máy_lọc_chuỗi, $giá_trị_trả_về)
  • $giá_trị_trả_về: điền 1 khi chỉ lấy 1 kết quả, điền 3 để lấy nhiều kết quả tương tự nếu có.
  • $bộ_máy_lọc_chuỗi: đừng quá đặt nặng việc viết sao cho đẹp. Đối với mình thì chỉ cần nhớ vài điều sau:
    a. Dùng tổ hợp (.*?) để tách lấy chuỗi cần, chả cần biết ba cái \w, \d... gì cho mệt óc.
    b. Trước và sau dấu ngoặc đơn của (.*?) cần có 2 "móc neo" đáng tin cậy. Móc neo đầu là nơi bắt đầu lấy chuỗi,móc neo cuối là nơi kết thúc lấy chuỗi. Nếu muốn lấy chuỗi bắt đầu từ móc neo đầu cho đến hết hàng tức là không xác định móc neo cuối (khi chuỗi gồm nhiều hàng) thì bỏ dấu ? trong cụm (.*?) đi, tức là chỉ (.*) thôi.
    c. Ngoài các ký tự 0-9, A-Z, a-z thì các ký tự khác thêm dấu \ở trước, riêng ký tự khoảng trắng ta không để là \ mà là \s, tất nhiên trừ dấu ngoặc đơn để xác định chuỗi cần tìm là không thêm \
    d. Đầu $bộ_máy_lọc_chuỗi dùng (?i) để không phân biệt hoa thường.
    e. Nếu dùng .*? thì giá trị trả về sẽ bao gồm cả móc neo.

  • Ví dụ: ta có chuỗi:
    ``$string = '1234[lMG]http://abc.xyz[/lMG]4321[lMG]http://123.xyz[/lMG]'. Hãy lọc ra đường link 'http://abc.xyz' trong chuỗi.

  • 'http://abc.xyz' là chuỗi cần tìm => đưa vô ngay (.*?), vì http:// là không đổi nên ta cũng có thể viết như thế này (http://.*?)

  • [lMG] và [/lMG] là 2 móc neo đáng tin.

  • Như vậy ta đã có:[lMG](.*?)[/lMG] hoặc [lMG](http://.*?)[/lMG]

  • Thêm \ vào các ký tự không phải Alphabe => \[lMG\](.*?)\[\/lMG\] hoặc \[lMG\](http\:\/\/.*?)\[\/lMG\]

  • Hoàn tất: StringRegExp($string, '(?i)\[lMG\](.*?)\[\/lMG\]', 1)

  • Nếu $giá_trị_trả_về để là 3 thì sẽ ra 2 kết quả là http://abc.xyzhttp://123.xyz vì thằng http://123.xyz nó cũng có cấu trúc tách giống như thằng kia.

h4212421 13-08-2016

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

h4212421

2 bài viết.
0 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 6 tháng trước
0 2
White
20 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết 2 năm trước
20 1
White
9 0
Có một tuyên ngôn cho chủ nghĩa tối giản trong ngành phần mềm. Link: http://minifesto.org/ Fight for Pareto's law, look for the 20% of effort th...
Cẩm Huỳnh viết 3 tháng trước
9 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
2 bài viết.
0 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!