出于好奇,比起其他原因(考虑到我花了很多时间),我试图查看是否可以在Sublime Text 3中使用regex替换功能
style="bla: bla; bla:bla;"
进入
bla:bla;
bla:bla;
我可以只为bla: bla; bla:bla;
创建一个捕获,而没有style
或引号:
(?<=\sstyle=")(.*)(?=")
https://regex101.com/r/tctJti/1
在那之后,我被困住了。我也尝试过分别捕获每个bla:bla
,但这似乎无济于事,因为捕获组仅保留了它捕获的最后一个东西:
\s*style="((.*?;)*)"
https://regex101.com/r/tctJti/2
我需要的是能够让sublime从我的第一个示例中忽略捕获组之外的所有内容,然后在单个捕获组内查找分号,并将其转换为换行符。这样的事情是否有可能发生,或者按照定义是两步转换?
答案 0 :(得分:2)
您可以使用此PCRE正则表达式进行匹配:
(?:\bstyle="|(?!^)\G)([^;"]+;?)\s*(?:"$)?
并替换为:
$1\n
\G
在上一场比赛的末尾或首场比赛的字符串开头声明位置。通过放置(?!^)
,我们可以确保\G
在行的开头不匹配。