我正在努力清理包含网络链接的mp3标签。我尝试了清除网络链接的正则表达式
(\w+)*(\s|\-)(\w+\.(\w+))
with
$1
但是,当我尝试在文件上使用相同的内容时,会替换扩展名。如何在此处进行扩展,.mp3作为上述正则表达式的例外?
我尝试使用this,但替换需要更多时间
答案 0 :(得分:1)
根据您的示例,使用此模式
\s-\s\S+(?=\.)
并替换为/ nothing
\s # <whitespace character>
- # "-"
\s # <whitespace character>
\S # <not a whitespace character>
+ # (one or more)(greedy)
(?= # Look-Ahead
\. # "."
) # End of Look-Ahead
答案 1 :(得分:0)
如果仅替换第一组,则sthi将只是文件的名称,不包括扩展名。 您的正则表达式实际上没有捕获扩展名,它会在网站的顶级域名(.com)之后停止。
您应该使用:
(\w+)(\s\-\s)(\w+\.\w+.\w+)(\.\w+)
并按组1和组4替换所有内容。提醒通常组0包含正则表达式匹配的整个字符串。
更多细节,例如“MySong - www.mysite.com.mp3:
(\w+) // 1. will match "MySong", replace by ([\w\s]+) to match "My Song"
(\s\-\s) // 2. will match " - "
(\w+\.\w+.\w+) // 3. will match "www.mysite.com". You may want to let "www." be optional by replacing by "([\w+\.]?\w+.\w+)
(\.\w+) // 4. the '.mp3" extension