मैं उबंटू पर sensors
उपयोगिता के आउटपुट के लिए एक साधारण नियमित अभिव्यक्ति पार्सर लिख रहा हूं। यहाँ टेक्स्ट की पंक्ति में मैं पार्स करने कर रहा हूँ का एक उदाहरण है:नियमित अभिव्यक्तियों के साथ पोर्टेबल (यूनिकोड) डिग्री प्रतीक को कैसे पार्स करें?
temp1: +31.0°C (crit = +107.0°C)
और यहाँ regex मैं मैच के लिए कि (अजगर में) का उपयोग कर रहा है:
temp_re = re.compile(r'(temp1:)\s+(\+|-)(\d+\.\d+)\W\WC\s+'
r'\(crit\s+=\s+(\+|-)(\d+\.\d+)\W\WC\).*')
इस कोड के रूप में की उम्मीद है और मैचों काम करता है उदाहरण पाठ मैंने ऊपर दिया है। केवल बिट्स मैं वास्तव में दिलचस्पी रखता हूँ नंबर दिए गए हैं, तो यह थोड़ा:
(\+|-)(\d+\.\d+)\W\WC
जो +
या -
हस्ताक्षर का मिलान करके शुरू होता है और °C
मिलान करते हुए समाप्त होता है।
मेरा सवाल है, यह (गैर-अल्फान्यूमेरिक) वर्णों को °
से मेल खाने के लिए क्यों लेता है? क्या सिस्टम उन सिस्टम पर टूट जाएगा जहां यूनिकोड का अलग-अलग प्रतिनिधित्व किया जाता है? यदि हां, तो मैं इसे पोर्टेबल कैसे बना सकता हूं?
're.UNICODE' ध्वज – netvope
're.UNICODE' ध्वज के साथ प्रयास करें कि आरई या तो \ \ W \ WC' या' WC' के साथ मेल नहीं खाता है। या, क्या मैंने आपको गलत समझा है? – snim2
"' ℃ '" भी है, जो एक _single_ वर्ण है जिसका मतलब डिग्री सेल्सियस है। धन्यवाद एक गुच्छा, यूनिकोड कंसोर्टियम! –