पैटर्न के लिए आरक्षित है आपके पास आपके परीक्षण डेटा में कुछ अदृश्य यूनिकोड वर्ण हैं।
उन्हें हटाएं, और आपका रेगेक्स work just fine होगा।
उदाहरण के लिए, (-112|-522)
का आपका उदाहरण वास्तव में \u0028\u002d\u0031\u0031\u0032\u007c\u202d\u202d\u002d\u0035\u0032\u0032\u202c\u202c\u0029
है।
आपके पास कुछ U+202D
(बाएँ-से-दाएं ओवरराइड) और U+202C
वहाँ में (पॉप डायरेक्शनल प्रारूपण)।
आप अपने regex में इन अनुमति देना चाहते हैं, तो आप उन्हें शामिल हो सकते हैं:
\(\p{Cf}*(-?\p{Cf}*\d+)\p{Cf}*\|\p{Cf}*(-?\p{Cf}*\d+)\p{Cf}*\)
लेकिन पैटर्न बहुत गंदा हो जाता है। मैंने इन पात्रों को अनुमति देने के लिए बस \p{Cf}*
का एक गुच्छा जोड़ा। ध्यान दें कि कैप्चर किए गए सबस्ट्रिंग्स को पूर्णांक में कनवर्ट करने का प्रयास करने से पहले आपको अभी भी शून्य चिह्न और अंकों के बीच वर्णों से छुटकारा पाना होगा।
शायद आपके मूल पैटर्न के साथ आगे बढ़ने से पहले \p{Cf}+
से मेल खाने वाली सभी चीज़ों को प्रतिस्थापित करने के लिए यह बहुत आसान होगा।
स्रोत
2015-08-19 21:31:05
यह ठीक दिखता है। इसमें ग़लत क्या है? – ndn