Java 无法将文本与以下模式匹配:@some words(可选):";sometext“+;链接(可选)

Java 无法将文本与以下模式匹配:@some words(可选):";sometext“+;链接(可选),java,regex,Java,Regex,我有以下模式: (with some words beginning with # or @)+"+sentence that does not contain any question+" (with some words beginning with # or @) + "+sentence that does not contain any question+"+ with link "+sentence that does not contain any question+" 例如

我有以下模式:

(with some words beginning with # or @)+"+sentence that does not contain any question+"
(with some words beginning with # or @) + "+sentence that does not contain any question+"+ with link 
 "+sentence that does not contain any question+"
例如,这里有一些与模式匹配的文本:

#cbc @RBC: "This is the video" http://stackoverflow.com/questions/ask
"This is the video" http://stackoverflow.com/questions/ask
  #cbc @RBC: "This is the video"
  "This is the video"
这是我的正则表达式:

^(\\s[@|#]\\w+){0,}\".+\"((?:http|https):\\/\\/\\S+){0,}$
这是我的密码:

private static void qoutedWrapped(String commentstr){
     String urlPattern = "^(\\s[@|#]\\w+){0,}\".+\"((?:http|https):\\/\\/\\S+){0,}$";
     Pattern p = Pattern.compile(urlPattern,Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(commentstr);
        if (m.find()) {
            System.out.println("yes");
        }
}
但当我试着用:

@cbc: "I love u" http://stackoverflow.com/questions/ask
它不起作用


有人能帮忙吗?

这是您需要的正则表达式:

^(\\s*[@|#]\\w+)+:\".+\"([http|https]:\\/\\/\\S+)*$

如前所述,使用
*
而不是
{0,}

这是您需要的正则表达式:

^(\\s*[@|#]\\w+)+:\".+\"([http|https]:\\/\\/\\S+)*$
^(\\s[@|#]\w+){0,}\".+\"((?:http|https):\\/\\/\\S+){0,}$

如前所述,使用
*
而不是
{0,}

这是您需要的正则表达式:

^(\\s*[@|#]\\w+)+:\".+\"([http|https]:\\/\\/\\S+)*$
^(\\s[@|#]\w+){0,}\".+\"((?:http|https):\\/\\/\\S+){0,}$

如前所述,使用
*
而不是
{0,}

这是您需要的正则表达式:

^(\\s*[@|#]\\w+)+:\".+\"([http|https]:\\/\\/\\S+)*$
^(\\s[@|#]\w+){0,}\".+\"((?:http|https):\\/\\/\\S+){0,}$
如前所述,使用
*
代替
{0,}

^(\\s[@|#]\w+){0,}\".+\"((?:http|https):\\/\\/\\S+){0,}$

(\\s[@|#]\\w+
如果要相信您的“非工作”示例,您希望白色字符是组中的第一个字符

@cbc:“我为什么爱你?”http://stackoverflow.com/questions/ask
^
[@|#]
之间没有必需的whitechar,因此它将不匹配。我不知道你剩下的正则表达式,但正如你所见,它需要仔细分析

尝试使用诸如 或者使用多个测试输入和正则表达式解释/可视化动态测试正则表达式。使用
*
代替
{0,}
感觉更自然

(\\s[@|#]\\w+
如果要相信您的“非工作”示例,您希望白色字符是组中的第一个字符

@cbc:“我为什么爱你?”http://stackoverflow.com/questions/ask
^
[@|#]
之间没有必需的whitechar,因此它将不匹配。我不知道你剩下的正则表达式,但正如你所见,它需要仔细分析

尝试使用诸如 或者使用多个测试输入和正则表达式解释/可视化动态测试正则表达式。使用
*
代替
{0,}
感觉更自然

(\\s[@|#]\\w+
如果要相信您的“非工作”示例,您希望白色字符是组中的第一个字符

@cbc:“我为什么爱你?”http://stackoverflow.com/questions/ask
^
[@|#]
之间没有必需的whitechar,因此它将不匹配。我不知道你剩下的正则表达式,但正如你所见,它需要仔细分析

尝试使用诸如 或者使用多个测试输入和正则表达式解释/可视化动态测试正则表达式。使用
*
代替
{0,}
感觉更自然

(\\s[@|#]\\w+
如果要相信您的“非工作”示例,您希望白色字符是组中的第一个字符

@cbc:“我为什么爱你?”http://stackoverflow.com/questions/ask
^
[@|#]
之间没有必需的whitechar,因此它将不匹配。我不知道你剩下的正则表达式,但正如你所见,它需要仔细分析

尝试使用诸如

或者使用多个测试输入和正则表达式解释/可视化动态测试正则表达式。同样使用
*
而不是使用
{0,}
感觉更自然

请用语言(Java?)标记您的问题。另外,修复格式。很难说问题的哪些部分显示了模式,哪些部分是问题文本的一部分。您已经成为SO编辑器的成员两年了,现在应该知道如何在SO编辑器中设置格式。@Barmar抱歉给您带来不便,我更正了:)@Barmar感谢您的建议,但我认为问题出在regx部分,而不是java部分;)请用语言(Java?)标记您的问题,并修复格式。很难说问题的哪些部分显示了模式,哪些部分是问题文本的一部分。您已经成为SO编辑器的成员两年了,现在应该知道如何在SO编辑器中设置格式。@Barmar抱歉给您带来不便,我更正了:)@Barmar感谢您的建议,但我认为问题出在regx部分,而不是java部分;)请用语言(Java?)标记您的问题,并修复格式。很难说问题的哪些部分显示了模式,哪些部分是问题文本的一部分。您已经成为SO编辑器的成员两年了,现在应该知道如何在SO编辑器中设置格式。@Barmar抱歉给您带来不便,我更正了:)@Barmar感谢您的建议,但我认为问题出在regx部分,而不是java部分;)请用语言(Java?)标记您的问题,并修复格式。很难说问题的哪些部分显示了模式,哪些部分是问题文本的一部分。您已经成为SO编辑器的成员两年了,现在应该知道如何在SO编辑器中设置格式。@Barmar抱歉给您带来不便,我更正了:)@Barmar感谢您的建议,但我认为问题出在regx部分,而不是java部分;)