2011-08-17 5 views
8

में '<' to '>' से संपूर्ण सबस्ट्रिंग को कैसे हटाएं मेरे पास एक प्रोग्राम है जो इनपुट स्ट्रिंग लेता है। मैं पात्रों '<' और '>' के अंदर कुछ भी हटाना चाहता हूं। उदाहरण के लिए स्ट्रिंग कहते हैंजावा

"P.S.<!-- 
BODY 
    { 
    color:white; 
    background-color: transparent; 
    font-family:sans-serif; 
    } 
--> Hello how are you today?" 

मैं उत्पादन स्ट्रिंग केवल "P.S. Hello how are you today?" शामिल करना चाहते हैं। जावा में ऐसा करने का कोई आसान तरीका है?

newstr = str.replaceAll("<[^>]*>", ""); 

इसका मतलब क्या है < के साथ शुरुआत हर-स्ट्रिंग, तो अक्षर हैं जो > नहीं हैं की किसी भी संख्या, और फिर चरित्र > मिल रहा है: धन्यवाद

+1

और" <"/"> "संयोजन केवल एक या कई बार वहां मौजूद ? –

+1

मैं '' '<*> 'के लक्ष्य को लक्षित करने की अनुशंसा करता हूं, इसलिए आप वास्तव में कोई टैग नहीं, बल्कि टिप्पणियां खींच रहे हैं। – corsiKa

उत्तर

22

एक रेगुलर एक्सप्रेशन का उपयोग करें। फिर खाली स्ट्रिंग, "" के साथ इन सभी सबस्ट्रिंग को प्रतिस्थापित करें।

संदर्भ: java.lang.String.replaceAll()

+0

शायद आपका मतलब '<[^>] *>'? वर्तमान regexp ' बार <.>" '' <.> "', नहीं '' बार '' चालू हो जाएगा। –

+0

@ माइक सैमुअल: पहले से ही संपादित, धन्यवाद। क्या हुआ था कि मैं शुरुआत में एक अनिच्छुक मात्रात्मक का उपयोग करना चाहता था, यानी '/ <.*?> /', लेकिन इसका उपयोग करने की वैचारिक जटिलता के खिलाफ फैसला किया। मैंने अपने निर्णय को बदलने की प्रक्रिया में एक संपादन त्रुटि की। – Nayuki

+0

धन्यवाद, यह विधि वास्तव में अच्छी तरह से काम किया। क्या स्पैन किए गए वर्ग के लिए replaceAll जैसी कोई विधि है? – Sean

0

आप नियमित अभिव्यक्ति का उपयोग कर आप सबस्ट्रिंग उपयोग कर सकते हैं से बचने के लिए पसंद करेंगे, तो:

String origText = "P.S.<!--"+ 
    "BODY"+ 
     "{"+ 
     "color:white;"+ 
     "background-color: transparent;"+ 
     "font-family:sans-serif;"+ 
     "}"+ 
    "--> Hello how are you today?"; 
String revised = origText.substring(0, origText.indexOf('<')) + 
    origText.substring(origText.lastIndexOf('>')+1, origText.length()); 

`Java String Class Reference

+0

यह' स्ट्रिंग टेक्स्ट = 'पर असफल होगा यह है एक परीक्षण। ";' – corsiKa

+0

दरअसल। ठीक करने के लिए, 'indexIf ('> ') 'indexOf ('> ')' के साथ 'lastIndexOf ('> ')' को प्रतिस्थापित करें। – Nayuki

+0

@glowcoder: सच है, लेकिन ओपी ने कई घटनाओं को निर्दिष्ट नहीं किया है। –