如何使用python正则表达式匹配以哈希和问号开头的单词?

Pho*_*beB 6 regex

这应该很简单,这个正则表达式可以很好地搜索以特定字符开头的单词,但是我无法让它匹配哈希和问号.

这适用于匹配开头的单词:

r = re.compile(r"\b([a])(\w+)\b")
Run Code Online (Sandbox Code Playgroud)

但这些不匹配:试过:

r = re.compile(r"\b([#?])(\w+)\b")
r = re.compile(r"\b([\#\?])(\w+)\b")
r = re.compile( r"([#\?][\w]+)?")
Run Code Online (Sandbox Code Playgroud)

甚至试过只匹配哈希

r = re.compile( r"([#][\w]+)?"
r = re.compile( r"([/#][\w]+)?"

text = "this is one #tag and this is ?another tag"
items = r.findall(text)
Run Code Online (Sandbox Code Playgroud)

期待得到:

[('#', 'tag'), ('?', 'another')]
Run Code Online (Sandbox Code Playgroud)

Bar*_*ers 6

\b匹配a \w\W(或a \W\w)之间的空格,但\b在a #或之前没有?.

换句话说:删除第一个单词边界.

不:

r = re.compile(r"\b([#?])(\w+)\b")
Run Code Online (Sandbox Code Playgroud)

r = re.compile(r"([#?])(\w+)\b")
Run Code Online (Sandbox Code Playgroud)