यह आदेशजीएनयू ग्रेप regex `[一 - 十]` (दस करने के लिए एक) चीनी चरित्र 四 से मेल नहीं खाता (चार)
$ echo '一二三四五六七八九十' | grep -oE '[一-十]'
आउटपुट:
一
二
三
五
六
七
八
九
十
regex [一-十]
(एक से दस) चीनी संख्याओं के खिलाफ मैच होने की उम्मीद है। उदाहरण के अनुसार, यह चीनी वर्ण 四
(चार) को छोड़कर प्रत्येक चीनी संख्या के विरुद्ध एक से दस तक मेल खाता है।
क्यों?
क्या यह एक बग या मजाक है?
मैं इसे मजाक के रूप में सोच सकता हूं, क्योंकि चीनी '四' (चार) में समान रूप से '事' (चीज़) लगता है। वास्तव में, चीनी की कुछ बोलीभाषाओं में, वे एक ही उच्चारण साझा करते हैं। इस प्रकार '一 二三 五六七 八 九十' (एक दो तीन पांच छः सात आठ नौ दस) का अर्थ है '沒 四' (कोई चार नहीं), यानी '沒事' (कोई बात नहीं)
संस्करण बीटीडब्ल्यू, संस्करण grep का उपयोग मैं करता हूं:
GNU grep 2.5.4
आपकी त्वरित प्रतिक्रिया के लिए धन्यवाद। हाउवर, मैं '一' के बजाय '-' (ascii, चीनी वर्ण नहीं) का उपयोग करता हूं। तो यह एक सीमा के खिलाफ मेल खाता है। क्या आप अपना जवाब संपादित कर सकते हैं? तो मैं इसे स्वीकार कर सकता हूँ। – weakish
@weakish bmargulies आपकी सीमा के पहले चरित्र के बारे में बात कर रहा है, न कि अंतराल के बीच डैश। – lanzz
@lanzz मेरी गलती को इंगित करने के लिए धन्यवाद। '一' और '-' समान दिखता है। मुझे 'यू + 4 ई00' देखा जाना चाहिए था। – weakish