如何编写允许介于两者之间的单词的正则表达式 赶上:"你好bla bla bla world" (不同数量的bla可以出现在任何地方) - 我需要手动编写IS_ALPHA吗?我不太了解非重要条款的数量......
import spacy
from spacy.matcher import Matcher
from spacy.attrs import POS, LOWER, IS_PUNCT, IS_ALPHA
nlp = spacy.load('en')
matcher = Matcher(nlp.vocab)
text=u"hello bla bla bla world"
matcher.add_pattern("my regex1", [{LOWER: "hello"}, {IS_ALPHA: True}, {LOWER: "world"}])
doc = nlp(text)
matches = matcher(doc)
print(matches)
答案 0 :(得分:1)
如果你真的不关心中间IS_ALPHA
个单词的数量,你可以使用*
量词,这似乎是用"OP"
键指定的:< / p>
matcher.add_pattern("my regex1", [{LOWER: "hello"},
{"OP": "*", IS_ALPHA: True}, {LOWER: "world"}])
请参阅源代码中的test_matcher.py获取语法,并the spaCy docs查看可用的量词。