python - 以一个模式开始但不以另一个模式结束的正则表达式
问题描述
假设我有这个玩具pandas.Series
import pandas as pd
s = pd.Series(['GarageQual', 'GarageArea', 'GarageCars', 'GarageTestCars', 'GaraFail'])
# 0 GarageQual
# 1 GarageArea
# 2 GarageCars
# 3 GarageTestCars
# 4 GaraFailed
# dtype: object
我想选择其值以模式开头'Garage'
且不以模式结尾的所有行'Cars'
;因此我想要的结果是
# 0 GarageQual
# 1 GarageArea
注意:我想通过正则表达式匹配来达到它。
我已经尝试了几次但无济于事
s.loc[s.str.match('^Garage.*[^Cars]$')]
# 0 GarageQual
# dtype: object
s.loc[s.str.match('^Garage.*^(Cars)$')]
# Series([], dtype: object)
s.loc[s.str.match('^Garage.*^(?!Cars)$')]
# Series([], dtype: object)
我觉得我非常接近解决方案,但我没有达到我想要的结果。
解决方案
推荐阅读
- postgresql - pgx lib中的命名预处理语句,它是如何工作的?
- javascript - 在电子中,我如何加载一个 URL 作为我的启动器而不是本地文件
- java - 将 JSON 插入 SQLite(GSON + Volley)
- python - 合并类对象列表
- javascript - 服务工作者可以获取和缓存跨域资产吗?
- python - Python从dict创建对象列表
- c# - 需要在发送到核心 2 中的 API 之前修改查询参数
- autocad-plugin - 为什么加载我的 dll 后我的自定义命令没有显示在 AutoCAD 控制台中
- mysql - MySQL中的距离计算与Great Circle Mapper不同
- r - 当我尝试从 tif 文件中提取值时,为什么会得到 NA?