Tuesday, 15 February 2011

Regex replace non-word except dash -


मेरे पास एक regex pattern (\ w | _) [^ -] काम नहीं करता है h_e.l_l.o - w_o.r_d के लिए (प्रतिस्थापन स्ट्रिंग "" है)।

यह इस तरह से कुछ देता है:

  hw < / Code> 

मुझे कम से कम ऐसा कुछ देखने की उम्मीद है:

  हैलो - शब्द  

मैं सभी गैर की जगह कैसे कर सकता हूं -शब्द वर्ण और _ को - प्रतीक को छोड़कर?

आपको अस्वीकृत वर्ण वर्ग की आवश्यकता है जो अक्षरों, अंकों और हाइफ़ोन के अलावा किसी अन्य वर्ण से मेल खाता है:

  / [^ - a-zA-Z0- 9] + /  

या (एक केस असंवेदनशील संशोधक के साथ):

  / [^ - a-z0- 9] + / i  < 
 

देखें।

ध्यान दें कि - चरित्र वर्ग की शुरुआत में रखा गया है, और बचने की आवश्यकता नहीं है।

आप जोड़ सकते हैं अंत में एक प्लस, एक खंड में सभी अवांछित पात्रों को मैच के लिए निकालने के लिए / P>

यदि आप अपना पैटर्न यूनिकोड को जागरूक करना चाहते हैं (यानी कुछ रेगेक्स के स्वादों में, यदि आप कुछ झंडे के साथ / बिना शॉर्टहैड वर्ण वर्गों का उपयोग करते हैं, तो वे सभी यूनिकोड समकक्षों से मेल भी करेंगे), आप

  / [^ \ w-] | _ /  

देखें (या / (?: [^ \ W-] | _) +

यहां, [^ \ w -] किसी भी चार से मेल खाता है जो कि शब्द नहीं है (अक्षर, अंक , या अंडरस्कोर) और दूसरा विकल्प _ मिलान अंडरस्कोर।


No comments:

Post a Comment