Как разобрать эту строку с помощью регулярных выражений или другой техники? - PullRequest
2 голосов
/ 11 ноября 2010

У меня есть строка:

hello example >> hai man

Как я могу извлечь слова "hai man", используя Java regex или другую технику?

Ответы [ 6 ]

4 голосов
/ 11 ноября 2010

Вы можете использовать регулярные выражения как:

String str    = "hello example >> hai man";
String result = str.replaceAll(".*>>\\s*(.*)", "$1");
2 голосов
/ 11 ноября 2010

Смотри прогон: http://www.ideone.com/cNMik

public class Test {
    public static void main(String[] args) {
        String test = "hello example >> hai man";

        Pattern p = Pattern.compile(".*>>\\s*(.*)");
        Matcher m = p.matcher(test);

        if (m.matches())
            System.out.println(m.group(1));
    }
}
1 голос
/ 11 ноября 2010

В Java 1.4:

 String s="hello example >> hai man";
 String[] b=s.split(">>");
 System.out.println(b[1].trim());
1 голос
/ 11 ноября 2010

Самый простой способ - играть с персонажем из String и его индексом.

Для hello example >> hai man используйте

String str ="hello example >> hai man";
int startIndex = str.indexOf(">>");
String result = str.subString(startIndex+2,str.length());  //2 because >> two character 

Я думаю, что это проясняет основную идею.

Есть много трюков, которые можно разобрать, используя

Еще один более простой способ:

     String str="hello example >> hai man";
     System.out.println(str.split(">>")[1]);
0 голосов
/ 11 ноября 2010

Рассмотрим следующее:

public static void main(String[] args) {
        //If I get a null value it means the stringToRetrieveFromParam does not contain stringToRetrieveParam.
        String returnVal = getStringIfExist("hai man", "hello example >> hai man");
        System.out.println(returnVal);

        returnVal = getStringIfExist("hai man", "hello example >> hai man is now in the middle!!!");
        System.out.println(returnVal);
    }

    /**Takes the example and make it more real-world like.
     * 
     * @param stringToRetrieveParam
     * @param stringToRetrieveFromParam
     * @return
     */
    public static String getStringIfExist(String stringToRetrieveParam,String stringToRetrieveFromParam){
        if(stringToRetrieveFromParam == null || stringToRetrieveParam == null){
            return null;
        }
        int index = stringToRetrieveFromParam.indexOf(stringToRetrieveParam);
        if(index > -1){
            return stringToRetrieveFromParam.substring(index,index + stringToRetrieveParam.length());
        }
        return null;
    }
0 голосов
/ 11 ноября 2010

что я понимаю, что ты хочешь достичь этого, ты можешь сделать что-то вроде

string myString = "hello example >> hai man";
string mySecondString = mystring.Replace("hai man", ""); 

Вы получите только hello example >>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...