私の人生で複数のルックアラウンドを行う方法がわかりません。ハッシュに続く可変数の数値に一致させたいとしますが、前に何かがあったり、何か他のものが続いたりする場合は一致しません。たとえば、次の #123 または #12345 に一致させたいとします。後読みは問題ないように見えますが、先読みはそうではありません。私はアイデアがありません。
matches = ["#123", "This is #12345",
# But not
"bad #123", "No match #12345", "This is #123-ubuntu",
"This is #123 0x08"]
pat = '(?<!bad )(?<!No match )(#[0-9]+)(?! 0x0)(?!-ubuntu)'
for i in matches:
print i, re.search(pat, i)