给定一个单词(x),返回在该单词中可能出现的n-gram。 你可以根据需要修改n-gram的值,它在pat变量中用花括号表示。 默认的n-gram值为4。
例如,对于单词(x):
x = 'abcdef'
可能的4-gram为:
['abcd', 'bcde', 'cdef']
def ngram_finder(x):
pat = r'(?=(\S{4}))'
xx = re.findall(pat, x)
return xx
问题是:如何在正则表达式中使用花括号将f-string和r-string组合起来。
{}
来表示量词(就像你原来的正则表达式中使用了{4}
)。f
字符串使用{}
来表示表达式替换,因此你需要在 f 字符串中“转义”正则表达式所需的{}
。这可以通过使用{{
和}}
来实现,在输出中它们会生成{
和}
。因此,{{{n}}}
会生成'{' + '4' + '}' = '{4}'
,如所需。 - Nickre.escape
将其转义,否则字符串中的某些字符可能会被错误地解释为正则表达式元字符。 - rjh