如何使用正则表达式或其他技术解析此字符串?

时间:2010-11-11 11:02:09

标签: java regex string

我有一个字符串:

hello example >> hai man

如何使用Java正则表达式或其他技术提取“海人”?

6 个答案:

答案 0 :(得分:4)

您可以将正则表达式用作:

String str    = "hello example >> hai man";
String result = str.replaceAll(".*>>\\s*(.*)", "$1");

答案 1 :(得分:2)

请参阅运行: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));
    }
}

答案 2 :(得分:1)

最基本的方法是使用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]);

答案 3 :(得分:1)

在Java 1.4中:

 String s="hello example >> hai man";
 String[] b=s.split(">>");
 System.out.println(b[1].trim());

答案 4 :(得分:0)

请考虑以下事项:

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;
    }

答案 5 :(得分:-2)

我明白你想要消除这个你可以做一些像

这样的事情
string myString = "hello example >> hai man";
string mySecondString = mystring.Replace("hai man", ""); 

您只会获得hello example >>