【发布时间】:2021-01-20 00:06:43
【问题描述】:
我有两个非常相关的问题:
-
我想用通配符匹配一个字符串模式(即包含一个或多个'*'或'?') 然后用第二个通配符模式形成一个替换字符串。那里的占位符应该引用 same 匹配的子字符串 (以DOS复制命令为例)
示例:
pattern='*.txt'和replacement-pattern='*.doc': 我想要aaa.txt-->aaa.doc和xx.txt.txt-->xx.txt.doc理想情况下,它可以与多个任意放置的通配符一起使用:例如,
pattern='*.*'和replacement-pattern='XX*.*'。当然需要应用一些约束(例如贪婪策略)。否则,
X*X*X等模式对于字符串XXXXXX不是唯一的。 -
或者,形成一个多重匹配。也就是说,我有一个或多个通配符模式,每个模式都有相同数量的通配符。每个模式都匹配一个字符串,但通配符应该引用相同的匹配文本。
示例:
pattern1='*.txt'和pattern2='*-suffix.txt应该匹配string1='XX.txt'和string2='XX-suffix.txt'对,但不匹配string1='XX.txt'和string2='YY-suffix.txt'与第一个相比,这是一个定义更明确的问题,因为它避免了歧义问题,但可能非常相似。
我确信有这些任务的算法,但是,我找不到任何有用的东西。
Python 库有 fnmatch 但这不支持我想做的事情。
【问题讨论】: