我正在研究布尔查询,例如:
Information mining AND retrieval OR position
我想创建两个数组或列表,一个包含术语(术语可以包含大写字母)术语可以有短语查询,即多个单词。
{Information mining, retrieval, position}
和第二个数组将包含关键字
{AND, OR}
所以我可以用布尔运算符映射相关的搜索词。
我使用正则表达式创建第一个数组“AND | NOT | OR”
我无法想出一种从给定字符串创建第二个数组的方法。
我可以使用什么正则表达式来实现结果?
答案 0 :(得分:1)
你可以使用这样的正则表达式:
([A-Z][a-z\s]+)|([A-Z]+)
^^^^^^^^^^^^^ ^--- Capture wey words
+--- Capture regular words
<强> Regex Working demo 强>
<强> Java demo example 强>
如下所示,您的第1组将捕获单词,而第2组将捕获关键字。
匹配信息
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`