convert unicode sang string là sao :V
khổ ông Python 2 quá, 4 ngày nữa là ngủm củ tỏi rồi còn viết làm gì :V
convert unicode sang string là sao :V
khổ ông Python 2 quá, 4 ngày nữa là ngủm củ tỏi rồi còn viết làm gì :V
Thêm ur vào đầu string là ok thôi. String pattern mà không ở raw string thì nguy hiểm.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
regex = re.compile(ur"^[aàảãáạăằẳẵắặâầẩẫấậbcdđeèẻẽéẹêềểễếệfghiìỉĩíịjklmnoòỏõóọôồổỗốộơờởỡớợpqrstuùủũúụưừửữứựvwxyỳỷỹýỵz0123456789_]+", re.UNICODE)
s = u"ai cũng biết"
print re.match(regex, s)
viết như kìa thì kiểu của s là
<type , str>
còn kiểu của mình đang là
<type 'unicode'>
Hả @@ u''
là unicode string mà @@
:v 4 ngày nữa đi rồi hả anh :), type , str thì match được còn type , unicode thì không anh ạ
Python 2 chuỗi có 2 kiểu Unicode u''
và chuỗi thường ascii hay sao ấy :V
tất cả phải xài u''
mình nhâm chút, đang chạy python2 hả bạn
mình làm được rồi, phải thêm cái ur ở chỗ re.compile .
anh gợi ý em cách lọc string: số hoặc số + chữ với ạ, mỗi chữ thì không lấy:
có mỗi số thì em làm được rồi.
Bạn tìm regex password mà có yêu cầu cả chữ và số ấy. Regex này tương tự với regex bạn cần tìm.
ví dụ bắt đầu bằng chuỗi chỉ có a-z hoặc 0-9:
[a-z0-9]+
bắt buộc phải có 1 ký tự a-z:
(?=.*[a-z])[a-z0-9]+
bắt buộc phải có 1 ký tự 0-9:
(?=.*[0-9])[a-z0-9]+
bắt buộc phải có 1 ký tự 0-9 và 1 ký tự a-z:
(?=.*[a-z])(?=.+[0-9])[a-z0-9]+
match toàn bộ chuỗi thì thêm ^
$
vào:
^(?=.*[a-z])(?=.+[0-9])[a-z0-9]+$
password có 6 ký tự trở lên thì thay dấu + bằng {6,}
^(?=.*[a-z])(?=.*[0-9])[a-z0-9]{6,}$
cám ơn bạn mình regex theo kiểu này không biết có xót trường hợp nào không:
'\S*\d+\S*'
em theo kiểu này không biết có xót trường hợp nào không:
'\S*\d+\S*'
toàn số vẫn match ~.~
yêu cầu cảu em là là lấy số hoặc sô + chữ anh ạ, của em không phải password.
à yêu cầu vậy à :V Vậy ví dụ a8a8a nó có match toàn bộ ko, có yêu cầu match toàn bộ ko :V
\S là lấy khác khoảng trắng à :V Vậy lỡ có underscore _
hay !#@$
thì sao
số hoặc số và chữ thì tương đương với phải có 1 ký tự là số, vậy xài ^(?=.*[0-9])[a-z0-9]+$
là được rồi :V
chỉ cần có số là em lấy thôi anh, không cần biết có thêm gì không
vậy em làm 1 vòng for là đủ rồi cần gì regex chi :V :V Cái \S*\d+\S*
có lẽ đúng rồi :V
if any(c in '0123456789' for c in s):
# ...
có thể xài ord(c)
cho lẹ hơn:
if any(48 <= ord(c) <= 57 for c in s): # ord('0') == 48, ord('9') == 57
# ...
edit: lâu quá ko viết python hehe