Python - 确定单词中是否包含问号

时间:2013-02-19 17:22:30

标签: python string contains

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

“这是吗?不,没关系”=错误

“这是这个”=真

2 个答案:

答案 0 :(得分:4)

s = "Is This It? Nope, that's fine"

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

答案 1 :(得分:1)

听起来像是我的正则表达式的工作:

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个捕获组,然后您可以将其引用为您想要的输出中的第一组和第二组,如下所示:'\ 1 \ 2'左边没有问号。