0

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

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

“它?就是这个”=真

4

2 回答 2

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

'?' in s[:-1].replace('? ','')
于 2013-02-19T17:24:38.800 回答
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 组引用像这样: '\1\2'
省略问号。

于 2013-02-19T17:53:02.013 回答