0

文字エンコーディングがうまくいかず、「It's」ではなく「It?s」になってしまうことがあります。Python を使用して、"?" を含む文字列のこれらのインスタンスを特定できるようにする式/関数について、誰でもアドバイスできますが、単語の末尾にはありませんか?

「これですか?いいえ、いいです」= False

「これですか」= True

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+?'
1 つ以上の単語文字に一致: '\w+?'
その後に実際の疑問符 (エスケープ) が続きます: '\?'
その後に 1 つ以上の単語文字が続きます: '\w+?'
これにより、疑問符が実際に単語の途中にあることが保証されます。

疑問符の置き換えについては、
次のように式に括弧を追加します: '(\w+?)\?(\w+?)'
は、2 つのキャプチャ グループを作成し、目的の出力でグループ番号 1 およびグループ番号 2 として参照できます。 '\1\2' のよう
にクエスチョン マークを省略します。

于 2013-02-19T17:53:02.013 に答える