如何使用正则表达式提取子字符串

我有一个字符串,里面有两个单引号, '字符。 在单引号之间是我想要的数据。

我如何编写一个正则表达式来从下面的文本中提取“我想要的数据”?

mydata = "some string with 'the data i want' inside";

假设你想要单引号之间的部分,用Matcher使用这个正则表达式:

"'(.*?)'"

例:

String mydata = "some string with 'the data i want' inside";
Pattern pattern = Pattern.compile("'(.*?)'");
Matcher matcher = pattern.matcher(mydata);
if (matcher.find())
{
    System.out.println(matcher.group(1));
}

结果:

the data i want

你不需要这样的正则表达式。

将apache commons lang添加到您的项目中(http://commons.apache.org/proper/commons-lang/),然后使用:

String dataYouWant = StringUtils.substringBetween(mydata, "'");

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile(".*'([^']*)'.*");
        String mydata = "some string with 'the data i want' inside";

        Matcher matcher = pattern.matcher(mydata);
        if(matcher.matches()) {
            System.out.println(matcher.group(1));
        }

    }
}
链接地址: http://www.djcxy.com/p/87005.html

上一篇: How to extract a substring using regex

下一篇: How do you match only valid roman numerals with a regular expression?