मैं पुष्टि कर सकता हूं कि यह एंड्रॉइड एमुलेटर में चलते समय PatternSyntaxException
फेंक देता है, लेकिन नियमित जावा एप्लिकेशन में नहीं। मैं नहीं देख सकता कि यह मामला क्यों होगा, इस तथ्य के अलावा कि एंड्रॉइड में नियमित अभिव्यक्ति कार्यान्वयन सामान्य जावा एसडीके से अलग है। Pattern एंड्रॉइड डेवलपर्स पेज से:
एंड्रॉइड में उपयोग की जाने वाली नियमित अभिव्यक्ति कार्यान्वयन आईसीयू द्वारा प्रदान की जाती है। नियमित अभिव्यक्तियों के लिए नोटेशन ज्यादातर जावा भाषा कार्यान्वयन में उपयोग किए जाने वालों का एक सुपरसेट है। इसका मतलब यह है कि मौजूदा एप्लिकेशन आम तौर पर अपेक्षित काम करेंगे, लेकिन दुर्लभ मामलों में एंड्रॉइड एक नियमित अभिव्यक्ति स्वीकार कर सकता है जो अन्य कार्यान्वयन द्वारा स्वीकार नहीं किया जाता है।
एक काम के आसपास के रूप में, मुझे पता चला कि आप एक गैर-कैप्चरिंग समूह में शब्द सीमा सम्मिलन को संलग्न करके अपवाद के आसपास हो सकते हैं।
Pattern.compile("(?:\\b)?");
(एक कैप्चरिंग समूह के रूप में अच्छी तरह से काम करता है, लेकिन मुझे शक है कि आप इसे की जरूरत है।)
मैं तुम्हें report this as a bug सुझाव है यदि आप कोई आधिकारिक प्रतिक्रिया प्राप्त कर सकते हैं देखने के लिए। (मैंने पहले ही खोजा है, और यह अभी तक रिपोर्ट नहीं किया जा रहा है।)
स्रोत
2012-10-03 23:58:11
त्रुटि की प्रेरणा नहीं पता ... लेकिन यह एक वैकल्पिक (और हालांकि शून्य लंबाई) शब्द सीमा है ... आप क्या हैं सब के बाद मैच करने जा रहा है ?? – Gabber
वैसे यह एक अलग परियोजना से एक जटिल रेगेक्स है। लेकिन मुझे नहीं लगता कि एक वैकल्पिक शब्द सीमा अमान्य पैटर्न वाक्यविन्यास क्यों होनी चाहिए। – Tentux