2017-08-23 2 views
1

私が持っている:文字列内の別の文字の周りにある文字を取得するにはどうすればよいですか?

Loremのイプサムは印刷と組版 業界の単にダミーテキストです。 Lorem Ipsumは、未知のプリンタがタイプのガレーを取り、 がタイプの標本を作るためにそれをスクランブルした1500s以来、これまでに業界標準のダミーテキスト であった。 Loremの標準チャンク Ipsumが1500年代から使用されているので、興味のある人は以下の通りです。 「de Finibus Bonorum et Malorum」のセクション1.10.32および1.10.33 によって、シセロも正確な元の形で再現されます。

1500sを検索し、その周辺の文字を選択したいとします。ever since the 1500s, when an unknown。私がforループを検索していることを考えれば、非常に長い文字列の中の1500sをすべて見つけようとしています。だから、次のループを見つけることになります。used since the 1500s is reproduced

を私は部分文字列を見つけるために正規表現を使用しています:

substring = re.findall('1500s', string) 

しかし、どのようにも、その周りにいくつかの20文字を選択するには?

+0

まあ、 '。{20}'任意の20文字の表現 –

+0

が、それはあります[この](https://regex101.com/r/hI61Tu/2)あなたがしたいですか? – ClasG

答えて

2

cricket_007によると、.{20}をブックマークとして正規表現パターンに使用できます。

substring = re.findall('.{0,20}1500s.{0,20}', s) 
+1

検索文字列がテキストの先頭または末尾に近すぎると失敗します。代わりに '。{0,20}'を使用します。 – tzaman

+0

大きなポイント@ツザマン!私の答えを更新しました。 – tdube

0
r"(.{20})?(1500)(.{20})?" g 

これは、同様に、文字列の開始/終了時に"1500"を検索します。正規表現を整理するためにグループ化しました。

See it work here

関連する問題