1

正規表現の一致を書き込もうとしています

たとえば、16 進数のカラー コードの一部でない限り、ファイル内の c99 を一致させたい

  • 一致しない #000c99
  • DO マッチオン/mysite.com/c99.php
  • DO マッチオン%20c99.php
  • DO マッチオンc99?hi=moo

これは正規表現でも可能ですか?

4

3 に答える 3

2

正規表現モジュールの使用:

>>> rx = regex.compile(r"(?<!#\d{0,3})c99")
>>> rx.findall("#000c99")
[]
>>> rx.findall("/mysite.com/c99.php")
[u'c99']
>>> rx.findall("%20c99.php")
[u'c99']
>>> rx.findall("c99?hi=moo")
[u'c99']
于 2012-07-04T22:09:16.627 に答える
1

最も簡単な方法は、「c​​99」を含む行を一致させ、c99 がカラーコードにある場所を破棄することです。

line = fileHandle.readline()
while (line) :
     if (re.search("c99", line)) :
          if (re.search("#.?.?.?c99", line)) :
               pass
          else :
               # line contains c99 not in a color code
     line = fileHandle.readline()

おそらく単一の正規表現内でそれを行う方法がありますが、これは頭に浮かんだ最初のことでした。

于 2012-07-04T21:46:54.760 に答える
0

この正規表現を使用します(^([^#].*?)?c99.*?$)

于 2012-07-04T21:57:19.320 に答える