2012-05-08 13 views
5
String s ="SSR/DANGEROUS GOODS AS PER ATTACHED SHIPPERS 
/DECLARATION 1 PACKAGE 

NFY 
/ACME CONSOLIDATORS" 

"पैकेज" और "एनएफवाई" के बीच की जगह को कैसे पट्टी करें?स्ट्रिंग से कैरिज रिटर्न को हटाने के लिए

s = s.replaceAll("PACKAGE\\s*NFY", "PACKAGE NFY"); 
+0

यह मूल उत्तर है। http://stackoverflow.com/questions/10171852/java-replaceall-doesnt-work-well-with-backslash –

उत्तर

3

इस कोड का प्रयास करें? की लाइनों में कुछ:

youString.Replace("\r", "") 
+1

+0 यह दूसरों के लिए सहायक होने के लिए पर्याप्त सामान्यीकृत नहीं है। –

0

आप एक समारोह की जगह की कोशिश की है:

-1
string = string.replace(/\s{2,}/g, ' '); 
+1

चलो, सवाल 'जावा' टैग किया गया है। क्या आप 'जावा' में समाधान नहीं दे सकते? – Romain

+0

ओह !!! हे लेकिन फिर भी आप पैटर्न माथेर का उपयोग कर सकते हैं और स्ट्रिंग को प्रतिस्थापित कर सकते हैं। –

23

जावा के String.replaceAll वास्तव में एक नियमित अभिव्यक्ति लेता है। आप के साथ सभी नई-पंक्तियों को दूर कर सकते हैं:

s = s.replaceAll("\\n", ""); 
s = s.replaceAll("\\r", ""); 

लेकिन इस सभी नई-पंक्तियों को हटा देगा।

डबल \ की सूचना दें: ताकि नियमित अभिव्यक्ति पार्सर को पारित स्ट्रिंग \n है।

आप भी इस, जो होशियार है कर सकते हैं:

s = s.replaceAll("\\s{2,}", " "); 

यह 2 या अधिक व्हाइटस्पेस के सभी दृश्यों को दूर होता है, उन्हें एक ही स्थान के साथ की जगह। चूंकि न्यूलाइन भी सफेद जगह हैं, इसलिए यह आपके लिए चाल चलाना चाहिए।

+4

इसके अलावा, 's.replaceAll (" (?: \\ n | \\ r) "," "); 'एक ही कथन में इसे प्राप्त करता है। और कोई अभिव्यक्ति को अधिक चुनिंदा होने के लिए तैयार कर सकता है। – Romain

+0

आप * हमेशा * उस पाठ से मेल खा सकते हैं जिसमें न्यूलाइन है; इसके लिए आपको ध्वज की आवश्यकता नहीं है। मल्टीलाइन क्या करता है एंकरों, '^' और '$' का अर्थ बदलता है, जिससे उन्हें लाइन सीमाओं के साथ-साथ पूरी स्ट्रिंग की शुरुआत और अंत में मिलान करने की अनुमति मिलती है। चूंकि आपके रेगेक्स में कोई एंकर नहीं है, इसलिए मल्टीलाइन ध्वज का कोई प्रभाव नहीं पड़ता है। –

+0

आप सही हैं - बस इसे 'पैटर्न। मल्टीलाइन' के साथ आज़माएं। लेकिन (मैंने मूल रूप से क्या किया था) 's = s.replace (" \\ s {2,} "," "); 'काम नहीं करता है। यह न्यूलाइन को हटा नहीं देता है। कोई विचार क्यों? – craigmj

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