2012-09-25 15 views
5

में विशेष वर्ण खोजने के लिए मैंRegex जावा

var regex = /[$&+,:;[email protected]#|]/; 

if(elem.match(regex)) { // do something 
} 

उपयोग कर सकते हैं कि क्या जावास्क्रिप्ट में स्ट्रिंग में कोई विशेष वर्ण है वहाँ खोजने के लिए।

मैं जावा में समान नियमित अभिव्यक्ति का उपयोग कैसे कर सकता हूं?

मैं कोशिश की है:

str.match("\\="); // return false 

उदाहरण के लिए:

String str = "123=456"; 

मैं पता लगाने के लिए "=" str में की कोशिश की।

यह काम नहीं किया। मैं क्या गलत कर रहा हूं?

+4

"जावा रेगुलर एक्सप्रेशन" और आप मिल सकता था के लिए एक सरल गूगल खोज: [ 'java.util.regex'] (http://docs.oracle.com/javase/6/ दस्तावेज़/एपीआई/जावा/उपयोग/regex/package-summary.html) सब कुछ अपने आप पर! – verdesmarald

+0

पैटर्न को दिखाया गया है –

उत्तर

15

इसे आजमाएं।

Pattern regex = Pattern.compile("[$&+,:;[email protected]#|]"); 
Matcher matcher = regex.matcher("123=456"); 
if (matcher.find()){ 
    // Do something 
} 

संपादित करें: matches() चेकों सभी स्ट्रिंग और find() स्ट्रिंग के किसी भी हिस्से में यह पाता है।

एक लिंक: http://docs.oracle.com/javase/tutorial/essential/regex/index.html

+1

अपने विशेष रेगेक्स के लिए, पैटर्न 'Pattern.compile ("[$ &+,:; =? @ # |]") के साथ बनाया जाएगा, बिना स्लेश के। – Brian

+0

मैंने आपके कोड की कोशिश की। यह काम नहीं कर सकता :( –

+0

क्षमा करें, मेरी गलती .... क्योंकि मैंने जेएसपी का उपयोग किया, मैं अपने सर्वर को रीफ्रेश करना भूल गया ...... –

2

String.matches() का उपयोग करें। समर्थित वाक्यविन्यास के लिए जावाडॉक्स पढ़ें।

import java.lang.Scanner; 
/*setup everything here, you just need that import*/ 
Scanner input = new Scanner(System.in); 
//ask for input 
String str = input.next(); 
if(str.contains(/*char1*/) || str.contains(/*char2*/) || /*continue the pattern, 1 for every character*/) 
{ 
    //event if it contains one 
} 
else 
{ 
    //event if it does not contain any 
} 

एक वैकल्पिक:

import java.lang.Scanner; 
/*put the program parts here*/ 
Scanner input = new Scanner(System.in); 
String str = input.next(); 
List<char> chars = Arrays.asList(/*put chars here, seperated with commas*/); 
for(int x = 0; x < chars.size();x++) 
{ 
    if(str.contains(chars[x])) 
    { 
     //event if it contains one 
    } 
    else 
    { 
     //event if it does not contain one 
    } 
} 
//resume program 

इन कोड के टुकड़े काम करेंगे, यह सोचते हैं सब कुछ सही ढंग आयात किया जाता है

-3

यहां कुछ नमूना कोड है।

+0

किसी ने यह समझाया कि उन्होंने मेरा जवाब क्यों कम किया? मैंने टाइपिंग समाप्त करने से पहले प्रस्तुत किया, और मैंने इसे बाकी जानकारी रखने के लिए संपादित किया। – Azulflame

+0

यह केवल तभी जांच करेगा यदि सभी वर्ण 'अनुक्रम' में हैं और उनके'regex' के मामले में एक 'char' नहीं है। -1 –

+0

@ श्रीहर चिलकापति क्या आप समझा सकते हैं? पहला यह जांचता है कि क्या एक या अधिक वर्ण स्ट्रिंग में हैं, दूसरा यह एक विशेष समय वाले सूची के आकार के आधार पर लूप के लिए एक समय का उपयोग करता है। – Azulflame