仅检索字符串中给定的单词

时间:2015-09-23 14:24:26

标签: java regex string

我正在研究布尔查询,例如:

Information mining AND retrieval OR position

我想创建两个数组或列表,一个包含术语(术语可以包含大写字母)术语可以有短语查询,即多个单词。

{Information mining, retrieval, position}

和第二个数组将包含关键字

{AND, OR}

所以我可以用布尔运算符映射相关的搜索词。

我使用正则表达式创建第一个数组“AND | NOT | OR”
我无法想出一种从给定字符串创建第二个数组的方法。

我可以使用什么正则表达式来实现结果?

1 个答案:

答案 0 :(得分:1)

你可以使用这样的正则表达式:

([A-Z][a-z\s]+)|([A-Z]+)
 ^^^^^^^^^^^^^     ^--- Capture wey words
      +--- Capture regular words

<强> Regex Working demo

<强> Java demo example

如下所示,您的第1组将捕获单词,而第2组将捕获关键字。

enter image description here

匹配信息

MATCH 1
1.  [0-11]  `information`
MATCH 2
2.  [12-15] `AND`
MATCH 3
1.  [16-25] `retrieval`
MATCH 4
2.  [26-28] `OR`
MATCH 5
1.  [29-37] `position`