2015-09-11 9 views
5
पता नहीं लगा पा

मैं एक तरीका है जिसके पता लगाता है कि क्या एक स्ट्रिंग एक नंबर है:Regex चीनी संख्या

public static boolean isNumber(String num) 
{ 
    return num.matches("(\\p{N})+"); 
} 

उपरोक्त विधि सफलतापूर्वक अंग्रेजी, हिंदी, अरबी संख्या मिलान लेकिन चीनी नम्बर मिलान करने में विफल रहता है :

三 十萬 零 二百 五十 आदि

यह एक regex जो किसी भी (या प्रमुख भाषाओं) भाषा से एक संख्या से मेल कर सकते हैं बनाने के लिए संभव है?

संपादित करें: संख्या दशमलव नहीं होगी, इसका उपयोग फ़ोन नंबर को सत्यापित करने के लिए किया जाएगा।

+0

ये दिखने '\ p {Lo}' श्रेणी से संबंधित हैं। –

+0

@stribizhev यह काम कर रहा है, लेकिन http://www.regular-expressions.info/unicode.html से \ p {Lo} की परिभाषा यह कह रही है कि यह संख्याओं के अलावा अन्य वर्णों से मेल खा सकता है? –

+0

क्या यह वर्ण कहने के लिए कोई वर्ण (आसानी से automatable) तरीका है कि क्या यह वर्ण अंक के रूप में उपयोग किए जाते हैं? क्या उन्हें शब्दों/पाठ के गैर-संख्यात्मक भाग के रूप में उपयोग किया जा सकता है? – doublep

उत्तर

0

जैसा कि कुछ ने पहले ही टिप्पणियों में बताया है, ये शब्द संख्याओं, यानी "एक", "दो", "तीन" आदि के लिए उपयोग किए गए शब्द हैं। चीन ने 1 9वीं शताब्दी में भारत-अरबी संख्याएं पेश कीं, इसलिए \p{N} चीनी संख्याओं से मेल खाना चाहिए। यदि आप शाब्दिक भी चाहते हैं, तो आपको उन्हें शामिल करना चाहिए, जैसा कि स्ट्रिबिज़ेव ने सुझाव दिया था।

संबंधित मुद्दे