2011-10-03 15 views
9

का हिस्सा रखें, इसलिए, यदि मैं b [यहां कुछ भी] स्ट्रिंग में बी [यहां कुछ भी] को प्रतिस्थापित करना चाहता हूं तो मैं यह कैसे करूँगा? उदाहरण: एक नियमित अभिव्यक्ति क्या है जो foobarfoo को foofarfoo बनाती है, और foobanfoo foofanfoo करने के लिए?नियमित अभिव्यक्ति प्रतिस्थापित करें लेकिन स्ट्रिंग

+0

मुझे यहां ट्यूटोरियल के साथ एक उत्कृष्ट लेख मिला है http://www.vogella.de/articles/JavaRegularExpressions/article.html यदि आप उस चार्ट को जानते हैं जिसे आप प्रतिस्थापित करना चाहते हैं और स्ट्रिंग में इसका स्थान यह बहुत जटिल नहीं होना चाहिए मैं क्या देख सकता हूँ –

+2

क्या कोई अतिरिक्त बाधा है जिसे आप प्रकट नहीं कर रहे हैं, या आपने "बी" को "एफ" के साथ बदलने की सोच नहीं ली है? उचित बोलते हुए, नियमित अभिव्यक्ति केवल तारों से मेल खाते हैं; प्रतिस्थापन एक regex सुविधा नहीं है। – tripleee

उत्तर

12

यहाँ बुनियादी सिद्धांत एक "कब्जा समूह" है:

String output = input.replaceAll("foob(..)foo", "foof$1foo"); 

नियमित अभिव्यक्ति में कोष्ठकों के अंदर ब्याज की भाग रखो। इसके बाद इसे replacement text, में या Matcher.group() विधि के माध्यम से इसके समूह संख्या द्वारा संदर्भित किया जा सकता है।

+0

धन्यवाद ... क्या यह किसी भी लंबाई, या केवल 2 अक्षरों के अनुक्रम से मेल खाता है? –

+0

स्पष्टीकरण के लिए, यह "foobarfoo" को "foofarfoo" में बदल देगा? – corsiKa

+0

@ Tj3 मुझे विश्वास है कि आप चाहते हैं कि आप चाहते हैं कि "" (। *) "'यदि आप कोई लंबाई चाहते हैं। '" (..) "' बिल्कुल दो मैच होगा। – corsiKa

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