【问题标题】:Python - determine if a word contains a question mark within itPython - 确定一个单词中是否包含问号
【发布时间】:2013-02-04 11:53:59
【问题描述】:

有时字符编码会出错,而不是“It's”,您最终会得到“It?s”。 使用 Python,任何人都可以建议一个表达式/函数,它可以让我确定包含“?”的字符串的这些实例,但不是在单词的末尾?

“这是它吗?不,没关系”= False

“它?是这个”=真

【问题讨论】:

  • 直接注意到解码失败不是更好吗?
  • @Chris:为什么你认为编码错误只会发生在单词中间?

标签: python string contains


【解决方案1】:
s = "Is This It? Nope, that's fine"

'?' in s[:-1].replace('? ','')

【讨论】:

  • 看起来已经修复了。
【解决方案2】:

对我来说,这听起来像是正则表达式的工作:

import re
re.match(r'\w+?\?\w+?',"Is This It? Nope, that's fine") ##Returns a 'match object' which evaluates to True
re.match(r'\w+?\?\w+?',"It?s This") ##Returns None which evaluates to False

那么如果你想替换它:

re.sub(r'(\w+?)\?(\w+?)',r'\1\2',"It?s This") ##Returns "Its This"

正则表达式:'\w+?\?\w+?'
匹配一个或多个单词字符:'\w+?'
后跟一个实际的问号(转义):'\?'
后跟一个或多个单词字符:'\w+?'
这样可以确保问号实际上位于单词的中间。

至于替换问号,
在表达式中添加括号,如下所示:'(\w+?)\?(\w+?)'
创建 2 个捕获组,然后您可以将其作为组号引用一个和组号 2 在您想要的输出中,如下所示:'\1\2'
省略问号。

【讨论】:

    猜你喜欢
    • 2019-05-29
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    相关资源
    最近更新 更多