我在将这些perl正则表达式转换为python时遇到了问题,我以前转换过更简单的正则表达式。我不太理解修饰语/s和/is,我知道/g是全局的。你知道吗
我也不知道第一个到底是做什么的。第二种方法删除html文件中带有消息的特定li标记。你知道吗
# First
$data =~ s/\]\((\/uploads\/.*?\.pdf)\)/\]\(ref\/\/\/docs$1\)/g;
# Second
$data =~ s/<li>.*?https:\/\/www\.example\.com.*?<\/li>/$test/is;
# What I think might work in python
data = re.sub('<li>.*?https:\/\/www\.example\.com.*?<\/li>/' + test, data, 1)
第一个正则表达式只在开头加上
ref///docs
。说明:
\]
匹配字符“]”\(
匹配字符“(”第一捕获组(/uploads/*?)?。pdf格式)
\/
匹配字符“/”uploads
匹配字符“uploads”(区分大小写)\/
匹配字符“/”.*?
匹配任何字符(行终止符除外)*?
量词-零次和无限次之间的匹配,尽可能少的次数,根据需要扩展(lazy)\.
与字符“匹配”。你知道吗pdf
匹配字符pdf(区分大小写)\)
匹配字符)全局模式标志
g
修饰符:全局。所有匹配项(第一次匹配后不返回)考虑一下这个例子:
test_str = "](/uploads/something.pdf)"
perl语言:
Python:
替换后打印
test_str
输出:我不知道您在第二个regex中真正想做什么,但是perl regex说要替换example.com网站任何变量
$test
。我们来玩吧:perl语言:
Python:
替换后打印
data
的输出:修饰符:
i
表示忽略大小写(不区分大小写的搜索)s
表示点现在将匹配任何字符(包括换行符)相关问题 更多 >
编程相关推荐