我有这个问题。我需要自动找到一种方法来生成匹配一组字符串的正则表达式。
例如,给定输入中的一组字符串:
S = ["Casino Royale (1928)", "Mission Goldfinger", "A view to a kill"]在开始时创建一个匹配第一个字符串的正则表达式进行迭代,因此:
regex1 = "\w{6}\s\w{6}\s\(\d{4}\)"然后将regex1与第二个字符串进行比较,因此:
regex2 = "\w{6-7}\s\w{6-10}(\s\(\d{4}\))?"然后是最后一个字符串,所以最终输出是:
regex_output = "\w{1-7}\s\w{4-10}(\s\w{2}\s\w\s\w{4}|\s\(\d{4}\))?"如果有可能实现的话我很愿意。也许这是复杂性理论的问题。
谢谢你的建议。
发布于 2016-11-22 02:25:53
使用文字的交替:
^\QCasino Royale (1928)\E|\QMission Goldfinger\E|\QA view to a kill\E$\Q...\E表示要按字面匹配包含的字符。
这种方法当然可以处理任意大的字符串列表。
https://stackoverflow.com/questions/40725448
复制相似问题