我正在使用正则表达式,将每个“ - ”周围的空格放在一个字符串中,例如
02 jaguar-leopard, tiger-panther 08
会变成
02 jaguar - leopard, tiger - panther 08
请注意,如果“ - ”周围已有空格,则不会进行任何更改,例如
02 jaguar - leopard, tiger - panther 08
不应该成为
02 jaguar - leopard, tiger - panther 08
连字符的数量事先未知。
感谢任何想法...
编辑: 我实际上并没有使用这种语言。我正在使用Ant Renamer(大量文件重命名实用程序)。重命名器GUI中有两个字段,“表达式”和“新名称”以提供输入。这是以帮助文件为例:
从mp3文件名交换艺术家和标题:
Expression =(。) - (。)。mp3
新名称= $ 2 - $ 1.mp3
和
从系列视频文件中提取剧集编号和标题,剧集编号为SnnEmm,后跟标题:
Expression = Code.Quantum.S([0-9] {2})E([0-9] {2})。(。*)。FRENCH.XViD.avi
新名称=代码量子 - $ 1 $ 2 - $ 3.avi
答案 0 :(得分:4)
将_*-_*
替换为_-_
(在使用模式之前用空格替换下划线)。
这样,连字符周围的任何现有空格都将被新插入的空格所取代。
答案 1 :(得分:2)
搜索:
(?:(\S)| )-(?:(\S)| )
替换:
$1 - $2
请注意,您的工具可能会使用反斜杠作为反向引用,但可能需要使用\1 - \2
。
答案 2 :(得分:1)
您很可能需要两个表达式才能完成此任务。
(?<=\S)-
替换为“ - ”-(?=\S)
替换为“ - ”JSBin:http://jsbin.com/UTUZADe/1/edit?js,console(我不得不为#1使用不同的方法,不幸的是JS不支持预见断言)