在作者在电子书文件名中命名后,我一直试图写一个正则表达式来纠正错误的分隔符。在Javascript中使用File Renamer。
这是我到目前为止所做的:
^(.*?)\b(- | --| -- |-- | -)\b
每个文件名中的第一个分隔符应为" - "这些是我尝试纠正的类型:
Author Name -Series 00 -Title.txt
Author_Name --Series 01 -Title -Genre.txt
File_Name1-- Sometext- more-info (V1.0).txt
Joe Bloggs- Blah
David Cay-Johnston -- Free Lunch.rtf
--------------不要匹配-------------
Jackie S. Newton-Paines - Blah- The Biography.epub
Fred Bloggs - Series - title.txt
如果我将正则表达式更改为:
^(.*?)\b(- | --| -- |-- | -| - )\b
使用REPLACE:
"$1 - "
然后它可以工作,但不允许我看到预览中会发生什么变化,因为它会改变每一个" - "到" - "。 (我使用替换"!$ 1 - "然后按预览排序,看看在申请之前要做出哪些更改)
有没有办法阻止正则表达式匹配" - "什么之后,所以我可以预览变化? 感谢。
答案 0 :(得分:1)
基本上,您不希望前缀(.*?)
包含字符串-
- 对吗?
嗯,你可以通过使用否定前瞻来匹配字符串.
开头的“任何字符”-
来确保这种情况。具体而言,将(.*?)
替换为((?! - ).)*?
。
您的完整正则表达式应该是:^(((?! - ).)*?)\b(- | --| -- |-- | -)\b