有时字符编码会出错,而不是“It's”,你最终会得到“It?s”。使用 Python,任何人都可以建议一个表达式/函数,它可以让我确定包含“?”的字符串的这些实例,但不是在单词的末尾?
“这是它吗?不,没关系”= False
“它?就是这个”=真
s = "Is This It? Nope, that's fine"
'?' in s[:-1].replace('? ','')
对我来说,这听起来像是正则表达式的工作:
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'
省略问号。