这应该很简单,这个正则表达式可以很好地搜索以特定字符开头的单词,但是我无法让它匹配哈希和问号.
这适用于匹配开头的单词:
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)
\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)