regex - 为什么我在 Python 的循环中面临正则表达式检测问题
问题描述
我在使用正则表达式时遇到了非常奇怪的问题。
weight='abcd'
description='ml'
for symbol in Syntax['symbol']:
print(symbol)
weight=re.findall(symbol,description)
print(weight)
output --> []
语法是一个包含不同单位的数据框,还包含符号列内的“ml”,我手动打印了它打印所需单位的符号变量,即“ml”,它将在循环中设置为模式,但它仍然返回 [] 或使用 re.match() 时没有。但是当我尝试下面的代码时
description='ml'
pattern='ml'
print(re.findall(pattern,description)
它打印“ml”,为什么?上述代码和 Top 代码在逻辑上是相同的。
解决方案
在顶部代码中,您只打印最终正则表达式搜索的结果,因为print(weight)
它在您的循环之外。如果“ml”在您的数据框中的某个位置,这一切都很好,但是如果 的最后一个值与中的symbol
任何内容都不匹配description
,则正则表达式将找不到任何匹配项,您也不会得到任何输出。
尝试weight
在for
循环内打印,看看你得到什么输出。
推荐阅读
- c - 关于将 char ** 转换为 (char *) 的问题
- javascript - 计数器不增加 1 - Vue
- ruby-on-rails - 如何使用相同的 erb rails 模板同时呈现 PDF 和 Excel?
- javascript - Vue 可重用对话框
- reactjs - 动作必须是普通对象。使用自定义中间件进行异步操作
- javascript - 是否有更优雅的解决方案来获得范围数组的倒数?
- python - 使用和/或组合在python中实现三元运算符
- tensorflow - 是否可以从保存的模型中恢复张量流估计器?
- mysql - 如何从两个插入操作中获取中间 LastInsertID?
- sass - 这个使用 mixin 函数的 SASS 代码是否过于冗长?