StringRegEx trong AutoIT
autoit
1
regex
14
White

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

StringRegEx trong AutoIT

- Cấu trúc của StringRegExp là 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.

- 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.xyz và http://123.xyz vì thằng http://123.xyz nó cũng có cấu trúc tách giống như thằng kia.
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'}}
{{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á!