Python将f字符串与r字符串和正则表达式中的花括号结合在一起

问题描述 投票:0回答:1

给出一个单词(x);返回该单词中可能存在的n-gram。您可以根据需要修改n-gram值;它位于pat变量的花括号中。n-gram的默认值为4。

例如;对于单词(x):x = 'abcdef'可能的4克为:

['abcd', 'bcde', 'cdef']

def ngram_finder(x):
    pat = r'(?=(\S{4}))'
    xx = re.findall(pat, x)
    return xx

问题是:如何使用花括号在正则表达式中组合f字符串和r字符串。

python python-3.x regex
1个回答
1
投票

您可以使用此字符串将n值合并到您的正则表达式中,使用双大括号在输出中创建一个:

fr'(?=(\S{{{n}}}))'

完整代码:

import re

def ngram_finder(x, n):
    pat = fr'(?=(\S{{{n}}}))'
    return re.findall(pat, x)

x = 'abcdef'
print(ngram_finder(x, 4))
print(ngram_finder(x, 5))

输出:

['abcd', 'bcde', 'cdef']
['abcde', 'bcdef']
© www.soinside.com 2019 - 2024. All rights reserved.