2

我想在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).)+

但他们都达不到我所需要的。

4

2 回答 2

1

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

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

这是现场演示

于 2012-10-25T16:53:21.663 回答
0

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

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

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

现场演示:这里

于 2012-10-25T17:22:58.277 回答