文字エンコーディングがうまくいかず、「It's」ではなく「It?s」になってしまうことがあります。Python を使用して、"?" を含む文字列のこれらのインスタンスを特定できるようにする式/関数について、誰でもアドバイスできますが、単語の末尾にはありませんか?
「これですか?いいえ、いいです」= False
「これですか」= True
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+?'
1 つ以上の単語文字に一致: '\w+?'
その後に実際の疑問符 (エスケープ) が続きます: '\?'
その後に 1 つ以上の単語文字が続きます: '\w+?'
これにより、疑問符が実際に単語の途中にあることが保証されます。
疑問符の置き換えについては、
次のように式に括弧を追加します: '(\w+?)\?(\w+?)'
は、2 つのキャプチャ グループを作成し、目的の出力でグループ番号 1 およびグループ番号 2 として参照できます。 '\1\2' のよう
にクエスチョン マークを省略します。