String
Python nhận dạng bất kỳ chuỗi ký tự nào bên trong dấu ngoặc kép hoặc đơn là một đối tượng
my_string = "This is string" my_string_2 = 'this is string' my_string_3 = """It's the string"""
Length
my_string = "String python" len(my_string) ### output: 13
Convert to string
str(123)
Concatenation:
+
my_string1 = "Introduction to" my_string2 = "string manipulation" print(my_string1 + " " + my_string2) ### Introduction to string manipulation
Indexing & slicing, stride : giống như các ngôn ngữ khác
my_string = "Introduction to" my_string[3] ### r my_string[-1] ### 0 my_string[0:3] ### Int my_string[:5] ### Intro my_string[5:] ### ion to my_string[0:6:2] ### Ito my_string[::-1] ### ot noitcudortnI
String Operations
Adjusting cases
my_string = "ThiS iS a NicE StrIng" my_string.lower() my_string.upper() my_string.capitalize()
Splitting
my_string = "This string will be split" my_string.split(sep=" ", maxsplit=2) ### ['this', 'string', 'will be split'] my_string.rsplit(sep=" ", maxsplit=2) ### ['this string will', 'be', 'split'] my_string_1 = "This string will be split\nin two" my_string_1.splitlines() ### ['This string will be split', 'in two']
Joining
### sep.join(iterable) my_list = ["this", "would", "be", "a", "string"] " ".join(my_list) ### this would be a string
Stripping
my_string = " this string will be stripped\n" my_string.strip() my_string.rstrip() my_string.lstrip()
Finding and replacing
Finding substrings
## string.find(substring,start,end) my_string = "where's waldo" my_string.find("waldo") ### 8 my_string.find("hehe") ### -1 my_string.find("waldo", 0, 6) ### -1 ## string.(substring,start,end) my_string.index("waldo") ### 8 my_string.index("hehe") ### Exception error
Counting occurrences
## string.count(substring,start,end) my_string = "How many fruits do you have in your fruit basket?" my_string.count("fruit") ### 2 my_string.count("fruit", 0, 16) ### 1
Replace
### string.replace(old, new, count) my_string = "The red house is between the blue house and the old house" print(my_string.replace("house", "car")) ### The red car is between the blue car and the old car print(my_string.replace("house", "car", 2))
RegEx Python
Regular Expression trong Python được thể hiện qua module
re
, nên việc đầu tiên khi các bạn muốn sử dụng regular expression thì cần phải import modulere
vào chương trình.Các biểu thức chính quy sẽ tương tự như ở các ngôn ngữ khác, mình chỉ list những pattern thú vị ở dưới đây và các phương thức có trong module
re
Example:
# Chuỗi có 5 chữ cái, bắt đầu bằng a và kết thúc là s pattern = '^a...s$' test_string = 'abyss' result = re.match(pattern, test_string) ### Dấu chấm . pattern = '..' # Khớp với bất kỳ đơn vị thông thường nào, trừ `\n` # có 2 ký tự trở lên # xuất hiện đầy đủ ký tự, chữ a có thể có nhiều hoặc không. pattern = 'ma*n' # xuất hiện đầy đủ ký tự, chữ a có thể có một hoặc nhiều. pattern = 'ma+n' # xuất hiện đầy đủ ký tự, chữ a chỉ có thể có một hoặc không. pattern = 'ma?n' #xuất hiện 2 và 3 ký tự pattern = 'a{2,3}'
## pattern đi với \ # \A - Khớp với các ký tự theo sau nó nằm ở đầu chuỗi. pattern = '\Athe' #the nằm ở đầu chuỗi # \b - Khớp với các ký tự được chỉ định nằm ở đầu hoặc cuối của từ. pattern = '\bfoo' #foo nằm ở đầu chuỗi hoặc đầu của từ pattern = '\bfoo' #foo nằm ở cuỗi chuỗi hoặc cuối của từ # \B - Trái ngược với \b, khớp với các ký tự được chỉ định # không nằm ở đầu hoặc cuối của từ.
Các Phương thức:
# Phương thức re.findall() string = 'cmon 13 man 89. hehe 34' pattern = '\d+' re.findall(pattern, string) # ['13', '89', '34'] # Phương thức re.split() string = 'U can tell.' pattern = '\s' re.split(pattern, string) ## ['U', 'can', 'tell'] ## Phương thức re.sub(pattern, replace, string, count) string = 'phong 11 python 22 \n today' pattern = '\s+' replace = '' re.sub(pattern, replace, string) ## phong11python22today
Another:
## Phương thức re.search() string = "Regex in python" re.search('\ARegex', string) # Đối tượng match string = '39801 356, 2102 1111' pattern = '(\d{3}) (\d{2})' ret = re.search(pattern, string) ret.group() ## Full group ret.group(1) ## 801 ret.group(2) ##
## ret.re và ret.string ret.re ## re.compile('(\\d{3}) (\\d{2})') ret.string ### 23213 111 ## Tiền tố r trước RegEx string = "\n and \r are escape sequences." # re.findall(r"[\n\r]", string) # Output: ["\n", "\r"]
WTF, BUG?
End
Note
p.