2017-05-30 5 views
2

文中の残りの単語との最後の一致(除外)と一致するように探しています。単語の最後の出現と末尾

例 何を選択することを期待し、 "ポテト" という言葉を探し、太字で:

ポテト、オレンジ、ジャガイモ、梅、梨、など

正規表現I一緒にまとめると、このようなものですが、完全には動作しません。

(potato:(?!.*potato)).* 

答えて

1
あなたは、文字列の残りの部分をキャプチャし、それらをキャプチャすることなく、「ポテトに続くもの」の1つの以上のグループを探すことができ

import re 
regex = re.compile(r'(?:.*potato)+(.*)') 
m = regex.match('potato, orange, potato, plum, pear, etc.') 
m.groups(1)[0] 

# ', plum, pear, etc.' 

とプラスとして、あなたはドン

」 t ポテトは、正規表現で2回表示する必要があります。

+0

これがどういう仕組みになっているのかまだ分かりませんが、それは動作します。ありがとうVM! – goul

2

これは機能しますか?

potato(?!.*potato)(.*) 
0

あなたは正規表現を使用せずに試すことができます。

STR1 = "ポテト、オレンジ、ジャガイモ、梅、梨、などを"

str_index = str1.rfind( "ポテト"、0、LEN(0009))

印刷STR1 [str_index + LEN( "ジャガイモ")::]

出力::

、梅、梨など

+0

ありがとうございます。私は正規表現を探していたので、そのルートに行くとループが必要なので、多くの行があります...正規表現のparfがループと比べて – goul

関連する問題