Regex在分隔符后获取一个值
我试图编写一些正则表达式,以便能够获取香蕉的价值。所以给出了这个文本列表 因此,基本上,对于每一行,我希望能够得到Regex在分隔符后获取一个值,regex,Regex,我试图编写一些正则表达式,以便能够获取香蕉的价值。所以给出了这个文本列表 因此,基本上,对于每一行,我希望能够得到banana=之后的任何内容,并让它停在|处(如果存在) apple=1|banana=2.5|oranges=1 banana=2.5|apple=1|oranges=1 apple=1|oranges=1|banana=2.5 apple=1|oranges=1|banana=-2.5 banana=2.5 我已经写了(?I)banana=(.*),但当然,在完全匹配之后,它得
banana=
之后的任何内容,并让它停在|
处(如果存在)
apple=1|banana=2.5|oranges=1
banana=2.5|apple=1|oranges=1
apple=1|oranges=1|banana=2.5
apple=1|oranges=1|banana=-2.5
banana=2.5
我已经写了(?I)banana=(.*)
,但当然,在完全匹配之后,它得到了一切
你们有什么解决办法吗
谢谢
我希望能够得到香蕉=
之后的任何东西,并让它停在|
处(如果存在)
apple=1|banana=2.5|oranges=1
banana=2.5|apple=1|oranges=1
apple=1|oranges=1|banana=2.5
apple=1|oranges=1|banana=-2.5
banana=2.5
您可以使用求反字符类而不是贪心点模式:
(?i)banana=([^|]*)
见
贪心点,*
,尽可能多地匹配除换行符以外的任何0+字符(在NFA引擎中)(通常,直到换行符的末尾)
如果使用否定字符类[^ |]
,它将匹配除
之外的任何字符
图案细节
-不区分大小写修饰符(?i)
-一个文字子字符串(在前面加上banana=
,将其作为一个单词匹配)\b
-捕获组1:除([^ |]*)
以外的任何0+字符(为避免空匹配,请将
替换为*
量词)+