python - 如果在 Python 中匹配字符串(REGEX)中的条件
问题描述
我只想在正则表达式匹配之前添加一个 if 条件:首先我定义正则表达式并将值存储在 Name 中,然后打印 Name 值。结果是真假(布尔值)。
Name = df['Name'].str.match('^(\w+\s*)$')
#If the result matches True value passed and else the value will be False
print(Name)
结果
:
True
False
True
下面的代码是关于我的 if 条件。我不知道如何将 if 条件与正则表达式匹配。似乎没有在 if 条件中检查 Name 的值为 True/False。
if Name is True:
print(Name)
else:
print('bye')
代码结果:
bye
预期结果:
John
Saher
谢谢
解决方案
您可以使用
df.loc[df['Name'].str.match(r'^\w+\s*$')]
请注意,您不需要将正则表达式作为参数传递给的捕获组Series.str.match
,它仅在extract
/中是必需的extractall
。
如果您想允许任何数量的前导空白字符,您还可以添加\s*
after^
和 use r'^\s*\w+\s*$'
。
熊猫测试:
import pandas as pd
df = pd.DataFrame({'Name': ['John', '---', 'Saher']})
>>> df.loc[df['Name'].str.match('^(\w+\s*)$')]
Name
0 John
2 Saher
推荐阅读
- applescript - Applescript 错误:无法将应用程序“照片”的类 xxxx 转换为类型列表、记录或文本
- azure - 在 Sql Server 数据库事务中登记 Cosmos 事务
- python-3.x - 如何将 QTimer 间隔与系统时间对齐
- visual-studio - 加载任何项目后如何让 VS 2017 运行一些自定义代码?
- javascript - ES6:当 ID 存在时,使用来自另一个对象的值填充对象值
- reactjs - Webpack watch 编译我的 scss sass 但不是 webpack-dev-server
- actionscript - 使用动作脚本拖放
- google-cloud-platform - GCP:云函数图
- sql - SQL - 根据多列的值获取重复列表
- r - 将 df 从因子转换为数值