Python正则中如何将动态生成的Token作为字面量解析?
解决方案:将Token作为字面量匹配的正则处理方法
在Python中,你可以使用re.escape()函数对动态生成的Token进行转义,它会自动把Token中的所有正则特殊字符(比如\^$?*+()[]{})转义为字面量,避免这些字符被解析成正则语法的一部分而引发错误。
修改你的代码如下:
import re # 运行时确定的变量 sampleText = 'These requirements result in a financial institution having to: search for certain indicia linked to an account holder (see paragraph 7.24 for a list of indicia); and/or</bbox></span></p><p text-alignment="left"><span class="text css_983095220"><bbox page="66" x="70.25" y="251.5419921875" height="10.7080078125" width="440.99853515625">request that account holders self-certify their residence status.</bbox></span></p><p text-alignment="left"><span class="text css_983095220"><bbox page="66" x="40.25" y="285.2919921875" height="109.7080078125" width="508.53515625">' token = "7.24 for a list of indicia); and/or request that a" # 使用re.escape()转义Token,避免正则特殊字符报错 pattern = re.escape(token) + '.*?page.*?(\d+)' regexResult = re.search(pattern, sampleText) print(regexResult)
说明
re.escape()会遍历Token中的每个字符,将正则元字符(如括号()、星号*、加号+等)前面加上反斜杠\,让正则引擎将它们当作普通字符匹配。- 这样你的正则模式就能正确处理包含特殊字符的Token,同时保留原有需求:匹配Token之后首次出现的
page,并提取其后的数字。
内容的提问来源于stack exchange,提问作者Calseon
相关产品推荐
相关产品推荐

