在 Python 中,正則表達式和 JSON 處理,能幫我們有效率的處理文本數據,本文將介紹如何使用正則表達式進行文本分析,以及如何處理和操作JSON數據。
正則表達式可以用來查找、替換或驗證文本模式,它使用特定的語法找出文本中的特定模式。在Python中,則是使用re
模組來進行正則表達式的操作。
import re
#尋找文本
text1 = "學習Python正則表達式"
match = re.search("Python", text1)
if match:
print("找到匹配:", match.group()) # 找到匹配: Python
#分割字符串
text2 = "Python,Java,C++"
languages = re.split(r',', text2)
print(languages) # ['Python', 'Java', 'C++']
#替換文本
text3 = "Python 是一種程式語言"
new_text = re.sub(r'Python', 'Java', text3)
print(new_text) # Java 是一種程式語言
.
:比對任意字元。範例:'A.B'
匹配 'ACB'
, 'ADB'
等。^
:比對開頭位置。範例:'^Hello'
匹配以 'Hello'
開頭的字符串。$
:比對結尾位置。範例:'end$'
匹配以 'end'
結尾的字符串。*
:比對前一個字元 0 到多次。範例:'A*'
匹配 'AAA'
, 'AA'
, 'A'
, 甚至是空字符串。?
:比對前一個字元 0 到 1 次。範例:'A?'
匹配 'A'
或空字符串。+
:比對前一個字元 1 到多次。範例:'A+'
匹配 'A'
, 'AA'
, 'AAA'
等。{m}
:比對前一個字元嚴格 m 次。範例:'A{3}'
僅匹配 'AAA'
。{m,n}
:比對前一個字元嚴格 m 到 n 次。範例:'A{1,3}'
匹配 'A'
, 'AA'
, 'AAA'
。{m,n}?
:比對前一個字元嚴格 m 到 n 次,盡量取少。範例:'A{1,3}?'
匹配 'A'
,而非 'AA'
或 'AAA'
。()
:小括號括住的地方設定為一個分組。範例:'(AB)'
匹配 'AB'
並將其作為一個分組。[]
:字元集,能表示一定範圍的字元集合。範例:'[A-C]'
匹配 'A'
, 'B'
, 'C'
。\
:正則表達式用的跳脫字元。範例:'\.'
匹配實際的 '.'
字元。|
:邏輯中的“或”,比對多個選項中的任一個。範例:'A|B'
匹配 'A'
或 'B'
。\w
:比對字母數字及底線。範例:'\w'
匹配 'A'
, 'b'
, '1'
, '_'
等。\W
:比對除了字母數字及底線外的字元。範例:'\W'
匹配如 '!'
, '@'
, '%'
等。\d
:比對數字。範例:'\d'
匹配 '0'
, '1'
, '2'
等。\D
:比對除了數字外的字元。範例:'\D'
匹配如 'A'
, 'b'
, '!'
等。JSON是一種數據交換格式,易於閱讀和編寫,也易於程式解析和生成。Python 中的 json
模組提供了處理 JSON 數據的方法。處理 JSON 數據時,最常見的錯誤之一是在讀取或寫入文件時的編碼問題,特別是在處理不同語言環境下的數據時。
import json
# 解析 JSON
json_string1 = '{"name": "Tom", "age": 30, "city": "New York"}'
data1 = json.loads(json_string1)
print(data1) # {'name': 'Tom', 'age': 30, 'city': 'New York'}
# 生成 JSON
data2 = {
"name": "Tom",
"age": 30,
"city": "New York"
}
json_string2 = json.dumps(data2)
print(json_string2) # {'name': 'Tom', 'age': 30, 'city': 'New York'}
😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊