单引号之间的Java正则表达式内容

我试图用Java写一个正则表达式来查找单引号之间的内容。可以帮我吗?我尝试了以下操作,但在某些情况下不起作用:

Pattern p = Pattern.compile("'([^']*)'");

  1. “ Tumblr”是一个了不起的应用程序 Tumblr

  2. Tumblr是一个了不起的“应用程序” 应用程序

  3. Tumblr是一个“惊人的”应用程序 惊人的

  4. Tumblr很棒而且令人惊讶 很棒,很棒

  5. Tumblr的用户感到失望 NONE

  6. Tumblr的“收购”完成,但用户忠诚度令人怀疑 收购

我对此表示感谢。

谢谢。

回答:

这应该可以解决问题:

(?:^|\s)'([^']*?)'(?:$|\s)

范例:http://www.regex101.com/r/hG5eE1

在Java(ideone)中:

import java.util.*;

import java.lang.*;

import java.util.regex.*;

class Main {

static final String[] testcases = new String[] {

"'Tumblr' is an amazing app",

"Tumblr is an amazing 'app'",

"Tumblr is an 'amazing' app",

"Tumblr is 'awesome' and 'amazing' ",

"Tumblr's users' are disappointed ",

"Tumblr's 'acquisition' complete but users' loyalty doubtful"

};

public static void main (String[] args) throws java.lang.Exception {

Pattern p = Pattern.compile("(?:^|\\s)'([^']*?)'(?:$|\\s)", Pattern.MULTILINE);

for (String arg : testcases) {

System.out.print("Input: "+arg+" -> Matches: ");

Matcher m = p.matcher(arg);

if (m.find()) {

System.out.print(m.group());

while (m.find()) System.out.print(", "+m.group());

System.out.println();

} else {

System.out.println("NONE");

}

}

}

}

以上是 单引号之间的Java正则表达式内容 的全部内容, 来源链接: utcz.com/qa/419915.html

回到顶部