我有一个句子列表,其中一些包含句子列表形式的元素:
| 指数|句话|
| --|--|
| 0 |你可以得到汽车、卡车、飞机和船。|
| 1 |你可以得到汽车,卡车和飞机。|
| 2 |你应该忽略这句话。|
我只希望从以“You can get”或“You can get the”开头的句子中提取元素,我希望使用pandas extractall
method提取这些元素,在这里我提取句子中列表的每个元素。
所需输出:
| 指数|匹配|对象|
| --|--|--|
| 0 | 0 |车|
| | 卡车| truck |
| | 平面| plane |
| | 船| boat |
| 1 | 0 |车|
| | 卡车| truck |
| | 平面| plane |
我有三个主要问题:
1.如何使用look behinds (?<=[Y|y]ou can get )
使其不会捕获the
1.如何包含前瞻\w+(?=s)?
,以便捕获元素的复数和单数形式
1.有没有可能写一个捕获组,也提取每个单词作为单独的元素,或者我应该先提取句子中的列表(例如cars, trucks, planes, and boats
),然后运行另一个正则表达式?
3条答案
按热度按时间l0oc07j21#
如何使用:
输出量:
nbnkbykc2#
一个更可靠的方法是过滤以
"You can get "
开头的行,然后替换可选的the
文章,可能的and/or
连词并提取剩余的单词:x6h2sr283#
1.我认为你应该过滤所有符合第一个条件的句子([Y|你可以得到)然后你可以尝试使用正则表达式来提取所有需要的部分。
((?:car|truck|plane|boat|box|basis)(?:\w+(?=s|es)?)?)
您可以尝试以单数和复数形式捕获,但必须预先定义要捕获的单词列表。测试句子:* 你可以买汽车卡车飞机轮船盒子基础 *