2

ここには多くの優れた正規表現の回答がありますが、自分に合ったものを見つけることができませんでした. 状況は次のとおりです。

私は数字の大きなリストを持っています。それが 1 から 100 までの数字の単なるリストであり、10、20、および 50 を含むリストのみを使用したいとしましょう。正規表現は受け入れません。^10$|^20$|^50$ ですから、代わりに、それらを NOT にしてから AND にする必要があると は言えません。

私はこれを試しました:

(?!^10$)(?!^20$)(?!^50$) 

運が悪く、どこでも機能しているものを見つけることができないようです。

何かご意見は?どうもありがとう!

ps私は自分が何をしているのかを示すためにこの特定の例を作成しました.正規表現を使用することはありません.これは私が抱えていた実際の問題でした....

4

1 に答える 1

1

あなたの問題を正しく理解していれば、次のようなものが必要です。

(?!^10$)(?!^20$)(?!^50$)^.*$

"10"これは、行に、"20"またはとは異なるものがある場合に一致し"50"ます。

ただし、これは問題を処理するのにかなり面倒な方法のようです。この線でもっと良いものはありませんか?

import re
pattern = re.compile(r"^(?:10|20|50)$")
for text in list_of_texts:
  m = pattern.match(text)
  if m is not None:
    print "Found something interesting (not 10, nor 20 nor 50): %s" % text
于 2012-05-15T23:25:16.557 に答える