2013-03-05 5 views
5

के बीच डेटा निकालने के लिए मैं जावा स्ट्रिंग में एक href टैग के बीच डेटा निकालने का प्रयास कर रहा हूं। मैं सभी को प्रतिस्थापित करने और सबस्ट्रिंग और इंडेक्स का उपयोग करने के साथ इसे प्राप्त कर सकता हूं।जावा रेगेक्स एक href टैग

मैं जानना चाहता हूं कि मैं regex का उपयोग कर डेटा कैसे प्राप्त कर सकता हूं।

तो मूल रूप से मैं एक स्ट्रिंग या सूची में डेटा निकालने और स्टोर करने की कोशिश कर रहा हूं।

String data ="12345"; 
     String sampleStr =""; 
     for(int i=0; i<10; i++) { 
     data+=i; 
     sampleStr += "<a href=\"javascript:yyy_getDetail(\'"+data+"\')\">"+data+"</a>"+", "; 
     }   

     System.out.println(sampleStr); 
     String temp = sampleStr.substring(sampleStr.indexOf("\">")+2); 

किसी भी सुझाव के संबंध में सराहना की जाएगी। रेगेक्स क्या होना चाहिए, इसलिए मैं केवल डेटा निकालता हूं।

+2

आप करने के लिए HTML पार्स करने की कोशिश की है उपयोग करने के लिए चुनते हैं चाहिए एक HTML पार्सर का उपयोग कर एक डोम? –

+0

यहां से शुरू करने के लिए एक रेगेक्स है: '/ ] *> (। *?) <\/a> /' –

उत्तर

1

यहां आपकी आवश्यकताओं के लिए एक उदाहरण है। नोट, कि पूर्ण मिलान में एंकर टैग के साथ स्ट्रिंग होगी और आपकी खोज की गई सामग्री group 1 में है।

String data ="12345"; 
String sampleStr =""; 
for(int i=0; i<10; i++) 
{ 
data+=i; 
sampleStr += "<a href=\"javascript:yyy_getDetail(\'"+data+"\')\">"+data+"</a>"+", "; 
} 

Pattern pattern = Pattern.compile("<a[^>]*>(.*?)</a>"); 
Matcher matcher = pattern.matcher(sampleStr); 
while (matcher.find()) 
{ 
     System.out.println("Result "+ matcher.group(1)); 
} 
+0

आपके उत्तर के लिए धन्यवाद। मैंने कोशिश की कि यह काम नहीं कर रहा है। – Nomad

+1

@ नोमाड क्षमा करें, आपको पूरी खोज स्ट्रिंग पास करनी चाहिए। मेरा संपादन – VladL

+0

धन्यवाद एक आकर्षण की तरह काम करता है। क्या आप समूह के हिस्से को समझा सकते हैं। आपने बताया कि मुझे केवल समूह (1) की आवश्यकता है? – Nomad

1

कृपया, इसके बजाय एक HTML/XML पार्सर का उपयोग करें। आपका जीवन बहुत आसान होगा।

एचटीएमएल आमतौर पर बहुत असंगत है और आप यह सुनिश्चित नहीं कर सकते कि यह जिस तरह से आप चाहते हैं उसे बदल देगा।

वास्तव में, एक प्रसिद्ध इस बारे में जवाब RegEx match open tags except XHTML self-contained tags

पर आप अपने विकल्पों के लिए Best XML parser for Java पर एक नज़र डालें तो आप एक HTML/XML पार्सर :)

+0

आपके उत्तर के लिए धन्यवाद। – Nomad

+0

मैं आपको उखाड़ फेंक दूंगा, लेकिन आपके पास जावा जावा पार्सर का लिंक नहीं है जिसका वह उपयोग कर सकता है। –

+0

वहां एक नज़र डालने के लिए उसके लिए एक लिंक जोड़ा गया। मैं जावा एक्सएमएल पार्सर्स के साथ वास्तव में अनुभव नहीं कर रहा हूं इसलिए मुझे विश्वास है कि प्रश्न बेहतर होना चाहिए :) – wei2912

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