में मैं अंग्रेजी के लिए और अवधारणाओं में से कुछ हालांकि रेगुलर एक्सप्रेशन (RegEx) के बारे में सीख रहा हूँ जैसे वे जैसे जापानी अन्य भाषाओं पर लागू होता है, मैं के रूप में अगर कई अन्य लोगों के नहीं होता लग रहा है लग रहे हैं। उदाहरण के लिए, रेगेक्स का एक सामान्य उपयोग यह पता लगाना है कि किसी शब्द में गैर अल्फान्यूमेरिक वर्ण हैं या नहीं। मैं नहीं देखता कि यह तकनीक और साथ ही अन्य जापानी के लिए कैसे काम करेंगे क्योंकि केवल तीन लेखन प्रणालियां नहीं हैं, लेकिन कांजी भी बहुत जटिल हैं और अल्फा न्यूमेरिक पात्रों की तुलना में बहुत अधिक रेंज हैं। मैं इस विषय पर और साथ ही क्षेत्रों को देखने के लिए किसी भी जानकारी की सराहना करता हूं क्योंकि इस विषय पर मुझे बहुत कम ज्ञान है हालांकि मैंने कई जापानी पाठ्यक्रम ले लिए हैं। यदि संभव हो, तो मैं आपके उत्तरों को पायथन और जावा का उपयोग करना चाहूंगा क्योंकि वे भाषाएं हैं जिनके साथ मैं सहज हूं। आपके सहयोग के लिए धन्यवाद।रेगुलर एक्सप्रेशन (RegEx) जापानी
उत्तर
अजगर regexes यूनिकोड सुविधाओं के लिए सीमित समर्थन प्रदान करते हैं। जावा बेहतर विशेष रूप से जावा 7.
जावा यूनिकोड श्रेणियों का समर्थन करता है है। उदा।, \p{L}
(और इसके शॉर्टेंड, \pL
) किसी भी भाषा में किसी भी पत्र से मेल खाता है। इसमें जापानी वैचारिक पात्र शामिल हैं।
जावा 7 हीरागाना, काताकाना, हान, और लैटिन लिपियों कि जापानी पाठ आम तौर से बना है सहित यूनिकोड स्क्रिप्ट, का समर्थन करता है। आप \p{Han}
, \p{Hiragana}
, \p{Katakana}
, और \p{Latin}
का उपयोग करके इन स्क्रिप्ट में से किसी एक में किसी भी चरित्र से मेल खा सकते हैं। आप उन्हें [\p{Han}\p{Hiragana}\p{Katakana}]
जैसे चरित्र वर्ग में जोड़ सकते हैं। हान स्क्रिप्ट के अलावा किसी भी चरित्र से मेल खाने के लिए आप अपरकेस P
(जैसे \P{Han}
) का उपयोग कर सकते हैं।
जावा 7 यूनिकोड ब्लॉक का समर्थन करता है। एंड्रॉइड में अपना कोड चलाने तक (जहां स्क्रिप्ट उपलब्ध नहीं हैं), आपको आम तौर पर ब्लॉक से बचना चाहिए, क्योंकि वे यूनिकोड स्क्रिप्ट से कम उपयोगी और सटीक हैं। वहाँ सहित जापानी पाठ से संबंधित ब्लॉक, की एक किस्म है \p{InHiragana}
, \p{InKatakana}
, \p{InCJK_Unified_Ideographs}
, \p{InCJK_Symbols_and_Punctuation}
, आदि
दोनों जावा और अजगर \uFFFF
, जहां FFFF
किसी भी चार अंकों headecimal संख्या है का उपयोग करते हुए अलग-अलग कोड अंक देख सकते हैं। जावा 7 किसी भी यूनिकोड कोड बिंदु का संदर्भ ले सकता है, जिसमें मूल बहुभाषी विमान से परे, उदाहरण के लिए \x{10FFFF}
। पाइथन रेगेक्स 21-बिट यूनिकोड का समर्थन नहीं करते हैं, लेकिन पायथन स्ट्रिंग करते हैं, इसलिए आप रेगेक्स में कोड कोड को एम्बेड कर सकते हैं उदा। \U0010FFFF
(अपरकेस U
आठ हेक्स अंकों के बाद)।
जावा 7 (?U)
या UNICODE_CHARACTER_CLASS
झंडा \w
और \d
की तरह चरित्र वर्ग shorthands यूनिकोड जागरूक बनाता है, तो वे जापानी आइडियोग्राफ़िक वर्ण, आदि के अनुरूप होगा (लेकिन ध्यान दें कि \d
अभी भी 一二 की तरह नंबर के लिए कांजी से मेल नहीं खाएगी 三四) । पायथन 3 शॉर्टेंड क्लास यूनिकोड डिफ़ॉल्ट रूप से जागरूक बनाता है। पायथन 2 में, जब आप re.UNICODE
या re.U
ध्वज का उपयोग करते हैं तो शॉर्टेंड क्लास यूनिकोड जागरूक होते हैं।
आप सही हैं कि सभी regex विचार सभी स्क्रिप्ट के लिए समान रूप से अच्छी तरह से नहीं लेते हैं। कुछ चीजें (जैसे कि अक्षर आवरण) सिर्फ जापानी पाठ के साथ समझ में नहीं आता है।
जावा पैराग्राफ के अनुसार दूसरा अनुच्छेद गलत होने की संभावना है। ** क्या आपने परीक्षण किया है? ** बाकी मैं अब परीक्षण नहीं कर सकता। – nhahtdh
पायथन संस्करण 3 रेगेक्स यूनिकोड का समर्थन करता है वैसे ही जावा 7 पैटर्न वर्ग के लिए करता है: http://docs.python.org/py3k/library/re.html – nhahtdh
@nhahtdh, आपकी टिप्पणियां सहायक नहीं हैं। हां, जावा यूनिकोड स्क्रिप्ट्स (मेरे दूसरे पैराग्राफ में वर्णित) का समर्थन करता है, और उन्हें "इज़" उपसर्ग का उपयोग करने की आवश्यकता नहीं है (मैं "इज़" का उपयोग न करने की अनुशंसा करता हूं, क्योंकि इससे इसे कम पोर्टेबल बनाता है)। और नहीं, पाइथन 3 में इसके रेगेक्स सिंटैक्स में यूनिकोड फीचर्स के लिए लगभग समान समर्थन नहीं है जैसे जावा (कोई यूनिकोड स्क्रिप्ट, श्रेणियां, ब्लॉक इत्यादि) नहीं है। – slevithan
जावा चरित्र वर्गों के लिए आप क्या देख रहे हैं की तरह कुछ है। वे वे हैं जो \ p here से शुरू होते हैं।
अजगर
लिए#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
kanji = u'漢字'
hiragana = u'ひらがな'
katakana = u'カタカナ'
str = kanji + hiragana + katakana
#Match Kanji
regex = u'[\u4E00-\u9FFF]+' # == u'[一-龠々]+'
match = re.search(regex, str, re.U)
print match.group().encode('utf-8') #=> 漢字
#Match Hiragana
regex = u'[\u3040-\u309Fー]+' # == u'[ぁ-んー]+'
match = re.search(regex, str, re.U)
print match.group().encode('utf-8') #=> ひらがな
#Match Katakana
regex = u'[\u30A0-\u30FF]+' # == u'[ァ-ヾ]+'
match = re.search(regex, str, re.U)
print match.group().encode('utf-8') #=>カタカナ
- 1. में रेगुलर एक्सप्रेशन
- 2. एसक्यूएल रेगुलर एक्सप्रेशन
- 3. अजगर रेगुलर एक्सप्रेशन तारीख
- 4. पर्ल: रेगुलर एक्सप्रेशन
- 5. डॉट रेगुलर एक्सप्रेशन से php
- 6. रेगुलर एक्सप्रेशन से 0-2
- 7. Nullability (रेगुलर एक्सप्रेशन)
- 8. कैसे एक रेगुलर एक्सप्रेशन
- 9. जावास्क्रिप्ट रेगुलर एक्सप्रेशन
- 10. jQuery के साथ जावास्क्रिप्ट रेगुलर एक्सप्रेशन शामिल Regex एक्सटेंशन
- 11. सी ++ 11 रेगुलर एक्सप्रेशन मिलान का
- 12. दो रेगुलर एक्सप्रेशन विलय स्ट्रिंग्स
- 13. रेगुलर एक्सप्रेशन मिलान संख्या और दशमलव
- 14. कार्यान्वयन रेगुलर एक्सप्रेशन से समय समाप्त 4
- 15. रेगुलर एक्सप्रेशन: UTS18 मानक के मिलान
- 16. रेगुलर एक्सप्रेशन से मेल स्लेश
- 17. रेगुलर एक्सप्रेशन से सशक्त पासवर्ड
- 18. रेगुलर एक्सप्रेशन से उन्नत: सकारात्मक
- 19. अजगर रेगुलर एक्सप्रेशन से Newline
- 20. जावास्क्रिप्ट रेगुलर एक्सप्रेशन से मेल पहली घटना
- 21. सी # रेगुलर एक्सप्रेशन से स्ट्रिंग निष्कर्षण
- 22. रेगुलर एक्सप्रेशन मिलान का अल्फा चरित्र 4 अक्षर या अंक
- 23. जावास्क्रिप्ट रेगुलर एक्सप्रेशन से काम नहीं कर रहा
- 24. रेगुलर एक्सप्रेशन में URL के प्रोटोकॉल
- 25. के लिए रेगुलर एक्सप्रेशन एक शब्द/स्ट्रिंग
- 26. वस्तुओं का चयन रेगुलर एक्सप्रेशन से मेल
- 27. पर्ल रेगुलर एक्सप्रेशन से सिंटेक्स त्रुटि
- 28. का पता लगाएं और रेगुलर एक्सप्रेशन से
- 29. Postgresql क्वेरी के लिए रेगुलर एक्सप्रेशन
- 30. अजगर: रेगुलर एक्सप्रेशन केवल पिछले घटना
अधिकांश regex कार्यान्वयन यूनिकोड समर्थन करते हैं। लिखने के लिए किस तरह के regexes एक अलग सवाल है। – SLaks
@ कुछ जोन्स: आप यूनिकोड के हेक्स मान का उपयोग करके जापानी वर्णों को लागू कर सकते हैं। ई।जी: \ uXXXX जिसमें XXXX यूनिकोड चरित्र का मान है। – jaselg
कुछ ऐसा जो मदद कर सकता है: http://www.rikai.com/library/kanjitables/kanji_codes.unicode.shtml। ध्यान दें कि यह एक ही चरित्र के जापानी ग्लिफ से चीनी ग्लिफ को अलग नहीं करता है। – nhahtdh