【问题标题】:Regex: pandas.str.contains('binary: [49] ') returns False but in fact, it is True正则表达式:pandas.str.contains('binary: [49] ') 返回 False 但实际上是 True
【发布时间】:2018-06-27 01:52:29
【问题描述】:

head 列的每一行中的我的 Pandas 字符串以 "binary: [49] " 开头,但它返回 False

all(all(df_ms1[head].str.contains('binary: [49] ')) == True for head in msarray_match)

我测试了df_ms1[head].str.contains('binary:'),,它返回了True。我想知道匹配"binary: [49] " 的词有什么问题?此处是否禁止使用空格、数字或括号?

【问题讨论】:

  • 我不相信你需要== True

标签: python regex python-2.7 pandas


【解决方案1】:

方括号是正则表达式元字符,具有特殊含义。如果你需要文字括号,你必须在你的模式中转义它们。

all(all(df_ms1[head].str.contains('binary: \[49\] ')) == True for head in msarray_match)

顺便说一句,binary: [49] 模式将匹配 binary: 4binary: 9,但不匹配 binary: 49

【讨论】:

  • 为什么它与binary: 49 不匹配但使用单个数字?
  • 它只适用于两个特定的单个数字:4 和 9。数量 [49] 表示匹配正则表达式中的 4 或 9。这不是文字表达。
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2011-02-07
  • 2016-03-15
  • 2012-05-31
  • 2011-12-13
  • 1970-01-01
  • 2011-07-16
相关资源
最近更新 更多