Regex 寻找正则表达式模式键:值对

Regex 寻找正则表达式模式键:值对,regex,Regex,我试图为outlook搜索找到一个正则表达式模式,我正在寻找分组模式来处理这个问题 from:Jack subject:(sending invoice) title:ibm 我使用了这个模式,但是我没有得到第一个单词后面的单词 (?<name>\\w+):[(](?<value>\\w*)[)]* (?\\w+):[(](?\\w*)[)]* \w不处理空格,请将正则表达式更改为: (?<name>\\w+):[(](?<value>[^)]

我试图为outlook搜索找到一个正则表达式模式,我正在寻找分组模式来处理这个问题

from:Jack subject:(sending invoice) title:ibm
我使用了这个模式,但是我没有得到第一个单词后面的单词

(?<name>\\w+):[(](?<value>\\w*)[)]*
(?\\w+):[(](?\\w*)[)]*

\w
不处理空格,请将正则表达式更改为:

(?<name>\\w+):[(](?<value>[^)]*)[)]

“value”中的第一个括号在正则表达式中不是可选的

发件人:Jack主题:(发送发票)标题:ibm

至于空格,我会这样做,因为括号并不存在于每个键值对中:

(?<name>\\w+):[(]*(?<value>(?:\\w|\\s)+)[)]*
(?\\w+):[(]*(?(?:\\w|\\s)+[)]*
但是,该值似乎是一个单词或一个单词序列,但在括号内-让我们重新编写正则表达式,否则您将在“:”之后获得整个内容作为第一个值:

(?<name>\\w+):(?:(?<value>\\w+)|(?:\\((?<value>(?:\\w|\\s)+)))
(?\\w+):(?:(?\\w+)(?:\\((?:\\w\\\s)+)

你能更清楚地说明你想用正则表达式实现什么吗?谢谢,这很有效。当值只有一个单词时,我如何使括号成为可选的:from:Jack@user1334070:使用量词
将其设置为可选,请参见我的编辑。
(?<name>\\w+):(?:(?<value>\\w+)|(?:\\((?<value>(?:\\w|\\s)+)))