我正在学习NLP,尝试使用正则表达式解决以下问题时遇到问题:
A掉了多少钱?
B掉了多少?
给出的句子如下:
- 大约3:45,A跌至另一个限制,下降了30点,交易再次被锁定。
2。期货交易员说,A暗示B可能下跌多达200点。
3.A暴跌了12点
我尝试提取正确的答案30 and 12
,而我的正则表达式代码为:
'\s?A (.+ )?(fall|drop|go\sdown|down|fell|plunged)(\sas\smuch\sas)? (\d+)'
显然,这是不正确的。它将给出答案"200"
到'A'并错过'30'
。
有人可以教我如何根据这种情况编写Regex吗?
任何回应将不胜感激!
答案 0 :(得分:0)
如果我们假设您要匹配的文本的格式为Letter ... VERB ... [0-9]+ points
,那么我们可以尝试使用以下模式:
\b[A-Z]\b.*?(?:fall|drop|go\sdown|down|fell|plunged|careened).*?(\d+) points