Java正则表达式匹配(单词组)子类(单词组)

时间:2012-10-25 16:46:27

标签: java regex

我想在Java中编写一个正则表达式来匹配一系列单词字符和空格,后跟字符序列“子类”的单词字符和空格序列:

应匹配的示例字符串:

a subclass of b

a and b subclass of c

a and b subclass of c and d

不应匹配以下字符串:

subclass of

a subclass of

subclass of b

a subclass of b subclass of c

我尝试了以下正则表达式:

    [a-zA-Z0-9 ]+subclass of[a-zA-Z0-9 ]+

(?:(?!subclass of).)+subclass of(?:(?!subclass of).)+

但它们都达不到我的需要。

2 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

^\\w+(?:\\s+and\\s+\\w+)?\\s+subclass\\s+of\\s+\\w+(?:\\s+and\\s+\\w+)?$

以下是Live Demo

答案 1 :(得分:0)

我会对你的正则表达式进行一些修改@anubhava:

^\w+(?:\sand\s\w+)*\ssubclass\sof\s\w+(?:\sand\s\w+)*$

确保(和\ w +)组可以多次匹配。

现场演示:here