0

文があり、そこからすべての単語を抽出したいと考えています。私は単語を [a-zA-Z] と定義していますが、単語にはアポストロフィが含まれる場合もあります。アポストロフィ自体は単語ではありません。私はPython3でプログラミングしています。

入力テキスト:

Don't-thread 0 '' ' 'on \r\nme!

与えるべき:

Don't
thread
on 
me 

正規表現の分割に関して。次に、Pythonを使用して次のように翻訳します。

Don't -> dont 
thread -> thread
on -> on
me -> me

その他の入力:

   ''Kay', he said. 'What're you goin' to do?'

正規表現の分割と python の翻訳は次のようになります。

   ''Kay' -> kay 
   he -> he
   said -> said
   'What're -> whatre
   you -> you
   goin' -> going
   to -> to
   do -> do

ここに私が現在使用しているものがあります:

\b(\S+)\b

これは明らかに、私が興味を持っているものよりもはるかに一致しています。

アップデート:

単語はアポストロフィで始めることができます。「Get 'em!」など。

4

3 に答える 3

2

明らかに、あなたの言葉の定義は間違っています。私はおそらく単語を次のように定義します

'?\p{L}+|p{L}+[p{L}']*

それから。

ランダムなメモ:\bそのセマンティクスが必要であると確信している場合 (非常にまれです)、またはあなたのケースでは問題にならない場合を除き、使用しないでください。数字とアンダースコアが含まれているため、言語処理には同様に役に立たないものと\b密接に関連しています。\w

于 2013-09-24T15:11:48.577 に答える