[英]Visual Studio Code: How to automate a simple regex-find and replace?
[英]How to find and replace in a regex code
我正在尝试查找并替换正则表达式代码
<div class="gallery-image-container">
<div jstcache="1116"
class="gallery-image-high-res loaded"
style="width: 396px;
height: 264px;
background-image: url("https://lh5.googleusercontent.com/p/AF1QipMcTfMPZj_d5iip9WKtN2SQB9Je5U4rRB0nT_t8=s396-k-no");
background-size: 396px 264px;"
jsan="7.gallery-image-high-res,7.loaded,5.width,5.height,5.background-image,5.background-size">
</div>
</div>
在上面的代码中,我使用了This
(https:\/\/[^&]*)
提取此URL
https://lh5.googleusercontent.com/p/AF1QipMcTfMPZj_d5iip9WKtN2SQB9Je5U4rRB0nT_t8=s396-k-no
我使用了此正则表达式s\\d{3}
来获取s396
现在我想将URL中的s396
替换为s1000
现在是Stock,不知道该怎么做。
无论如何,请问所有这些都可以用一个正则表达式代码而不是多个代码完成吗?
我建议使用HTML解析器,但我知道有时是不可能的。 这是python中的一个小例子。
import re
data = '''
<div class="gallery-image-container">
<div jstcache="1116"
class="gallery-image-high-res loaded"
style="width: 396px;
height: 264px;
background-image: url("https://lh5.googleusercontent.com/p/AF1QipMcTfMPZj_d5iip9WKtN2SQB9Je5U4rRB0nT_t8=s396-k-no");
background-size: 396px 264px;"
jsan="7.gallery-image-high-res,7.loaded,5.width,5.height,5.background-image,5.background-size">
</div>
</div>
'''
match = re.search("(https?://[^&]+)", data)
url = match.group(1)
url = re.sub("s\d{3}", "s1000", url)
print(url)
他们的关键部分是正则表达式
(https?://[^&]+)
它使用否定字符类。 就是说,使用可选的s
和://
来查找http
,然后查找所有非 &
您可以使用此站点使用正则表达式:
https://regex101.com/r/b0APFA/1
我敢肯定,您可以做一个聪明的1班轮嵌套正则表达式来一次查找和替换所有内容,但是如果您有几行内容,它将更容易进行故障排除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.