0
C、CLK、CEポートとそのポートに関連する特定の印刷を効果的に検索するために、次の正規表現を改善するにはどうすればよいですか?この正規表現をPythonで修正する
以下のコードは、C、CLK、CEを検出しますが、すべてCポートとラベル付けされていますが、これは意図されていません。
以下のサンプルコード:
import re
test_array = ['jclk','jce','ja','jb','jc','jd','je']
for thisEntry in test_array:
if re.match(r'jc', thisEntry):
print("this is C port")
elif re.match(r'jce', thisEntry):
print("this is CE port")
elif re.match(r'jclk', thisEntry):
print("this is CLK port")
else:
print("dont care")
結果:事前に
this is C port #for 'jclk', incorrect
this is C port #for 'jce', incorrect
dont care #for 'ja', correct
dont care #for 'jb', correct
this is C port #for 'jc', correct
dont care #for 'jd', correct
dont care #for 'je', correct
感謝。
あなたがアンカーを使用する必要があります。 btwなぜここで正規表現を使っているのか分かりません。 'thisEntry == 'jc''条件を使用できませんか? – anubhava
こんにちは、ありがとうございました。私が 'thisEntry == 'jc'を使用しない理由は、実際のアプリケーションでは、値が単純な 'j *'引数ではないクラスから辞書にアクセスしているからです。 – Meeyaw
これで、単語境界またはアンカーを次のように使用します: 're.match(r '\ bjc \ b'、thisEntry): ' – anubhava