正则表达式 - 替换除文件扩展名以外的所有文件标记
Regular Expression - Replace all except the file extension for file tagging
我正在清理包含网络链接的 mp3 标签。我尝试了清除网络链接的正则表达式
(\w+)*(\s|\-)(\w+\.(\w+))
with
但是,当我尝试在文件上使用相同的扩展名时,扩展名被替换了。如何在此处将扩展名 .mp3 作为上述正则表达式的例外?
我试过使用 this 但替换需要更多时间
如果只替换第一组,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
根据您的示例,使用此模式
\s-\s\S+(?=\.)
什么都不替换
\s # <whitespace character>
- # "-"
\s # <whitespace character>
\S # <not a whitespace character>
+ # (one or more)(greedy)
(?= # Look-Ahead
\. # "."
) # End of Look-Ahead
我正在清理包含网络链接的 mp3 标签。我尝试了清除网络链接的正则表达式
(\w+)*(\s|\-)(\w+\.(\w+))
with
但是,当我尝试在文件上使用相同的扩展名时,扩展名被替换了。如何在此处将扩展名 .mp3 作为上述正则表达式的例外?
我试过使用 this 但替换需要更多时间
如果只替换第一组,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
根据您的示例,使用此模式
\s-\s\S+(?=\.)
什么都不替换
\s # <whitespace character>
- # "-"
\s # <whitespace character>
\S # <not a whitespace character>
+ # (one or more)(greedy)
(?= # Look-Ahead
\. # "."
) # End of Look-Ahead