2010-11-16 14 views

Odpowiedz

33

nr.

Check source code for verification

Obejście: Nie jest standardową praktyką, ale można uzyskać za pomocą tego doprowadzić.

Aktualizacja:

CharSequence inputStr = "abcabcab283c"; 
    String patternStr = "[1-9]{3}"; 
    Pattern pattern = Pattern.compile(patternStr); 
    Matcher matcher = pattern.matcher(inputStr); 
    if(matcher.find()){ 

    System.out.println(matcher.start());//this will give you index 
    } 

LUB

Regex r = new Regex("YOURREGEX"); 

// search for a match within a string 
r.search("YOUR STRING YOUR STRING"); 

if(r.didMatch()){ 
// Prints "true" -- r.didMatch() is a boolean function 
// that tells us whether the last search was successful 
// in finding a pattern. 
// r.left() returns left String , string before the matched pattern 
int index = r.left().length(); 
} 
+0

Czy istnieje sposób obejścia tego problemu? – Roshan

+0

@ org.life.java - Jakiej biblioteki tu używasz? Regex nie znajduje się w standardowych bibliotekach Java. –

+0

@Stephen C Dzięki, poszedłem za tym pod adresem http://www.javaregex.com/ Nie jestem pewien czy jest to wiarygodna biblioteka, czy nie. Nie użyłem go osobiście, nauczyłem się z jego tutoriala –

27

Jest to podejście dwuetapowe. Najpierw znajdź dopasowanie dla swojego wzoru, a następnie (po drugie) użyj Matcher#start, aby uzyskać pozycję zgodnego ciągu w łańcuchu zawartości.

Pattern p = Pattern.compile(myMagicPattern); // insert your pattern here 
Matcher m = p.matcher(contentString); 
if (m.find()) { 
    int position = m.start(); 
}