เขียน Regular Expression
มาเขียน Regular Expression กัน!
โจทย์คือให้สร้าง Regular Expression สำหรับจับคู่อุณหภูมิที่ถูกต้องในหน่วยเซลเซียสหรือฟาเรนไฮต์ (เช่น '+23.5 C', '-4 F', '0.0 C', '73.45 F') แล้วดึงทุกค่าที่ตรงกันออกจากสตริง text ที่กำหนดให้ อุณหภูมิที่เป็นบวกจะมีหรือไม่มีเครื่องหมาย + นำหน้าก็ได้ (เช่น '5 F', '+5 F') ส่วนอุณหภูมิที่เป็นลบต้องมีเครื่องหมาย - นำหน้าเสมอ และอุณหภูมิศูนย์จะมีหรือไม่มีเครื่องหมายนำหน้าก็ได้
โมดูล re ถูก import ไว้แล้ว
เคล็ดลับ:
- สัญลักษณ์
+ที่อยู่ภายในวงเล็บเหลี่ยม[]จะจับคู่กับสัญลักษณ์+ตัวนั้นโดยตรง (เช่น Regular Expression[1a+]จะจับคู่กับ'1','a'หรือ'+') - สามารถใช้
?กับชุดอักขระภายใน[]เพื่อทำให้ชุดนั้นเป็นตัวเลือกได้ (เช่น[ab]?จับคู่กับ'a','b'หรือ'')
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
ฝึกทำโจทย์สัมภาษณ์งานเขียนโค้ดด้วย Python
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define a pattern to search for valid temperatures in text
pattern = re.compile(____)
# Print the temperatures out
print(re.findall(pattern, text))