2014-09-13 14 views
6

मैं एक स्ट्रिंग से सभी विराम हटाने की कोशिश कर रहा हूँ लेकिन यह सभी विराम को हटाने नहीं कर रहा हैअमृत विराम चिह्न प्रतिस्थापन regex

String.replace(sentence, ~r[\p{P}\p{S}], "") 

का उपयोग कर! एक उदाहरण उदाहरण के रूप में:

iex(1)> String.replace("foo!&^%$?", ~r[\p{P}\p{S}], "") 
"foo!?" 

मुझे क्या उपयोग करना चाहिए? ,

String.replace("foo!&^%$?", ~r/[\p{P}\p{S}]/, "") 

परिणाम समझाया जा सकता है किसी और वजह से [] अपने नमूना है, जो एक दृश्य और परिणाम के रूप में \p{P}\p{S} से मेल खाती है में डिलीमीटर के रूप में इस्तेमाल किया जाएगा:

उत्तर

14

संभवत: / ... / पैटर्न delimiters के रूप में की जरूरत है foo!? में (regex101 example देखें)

इसके अलावा एक +quantifier जोड़ना होगा: ~r/[\p{P}\p{S}]+/

+0

आप बिल्कुल सही हैं! धन्यवाद। –

+0

@ जोशुआहन्ना आपका स्वागत है :) –

+0

यह रेगेक्स 'सहकारी' जैसे हाइपेंस को भी हटा देगा। @ जॉनी 5 क्या आप हाइफ़न को हटाने के लिए अपने reg ex को अपडेट करने में सक्षम हैं? – BenMorganIO

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