Javascript 正则表达式匹配和增量文件名(n)
我需要编写一个正则表达式,以确保没有文件名冲突 因此,我赋予用户保存为某个名称的能力,然后根据数组检查字符串,如果发生冲突,则遵循Windows保存范例 如果保存Javascript 正则表达式匹配和增量文件名(n),javascript,regex,Javascript,Regex,我需要编写一个正则表达式,以确保没有文件名冲突 因此,我赋予用户保存为某个名称的能力,然后根据数组检查字符串,如果发生冲突,则遵循Windows保存范例 如果保存test它将另存为test,如果再次尝试保存test,它将变成test(1)。现在我想寻找(1)所以 条件 它总是以(开头,然后是N个0-9个字符,以结尾) 如何使用regex查找(1)或(169) 我不确定我能把这个正则表达式写成的最短字符数。作为辅助正则表达式,我如何拥有相同的正则表达式,但也查找相同的正则表达式,但在()之前有一个
test
它将另存为test
,如果再次尝试保存test
,它将变成test(1)
。现在我想寻找(1)
所以
条件
它总是以(
开头,然后是N个0-9个字符,以结尾)
如何使用regex查找(1)
或(169)
我不确定我能把这个正则表达式写成的最短字符数。作为辅助正则表达式,我如何拥有相同的正则表达式,但也查找相同的正则表达式,但在(
)之前有一个空格
尝试:
我想到的是const regEx=RegExp(/(?:\()[0-9*])(?:\)/)
,但是这只适用于(1)
,而不适用于(11)
,我不知道如何在(
这可能很容易,但我对正则表达式不是很有经验
应/不起作用的字符串示例
// Should work:
test (1)
test (594)
test (54)
// Shouldn't work
test (1
test 594)
test 54
字符串应以
空格(一个或多个数字)结束,以便您可以:
\s\((\d+)\)$
\d+
周围的附加括号(捕获组)用于提取数字:
匹配
const sample=`test(0)
测试(12)
测试()
测试(1)
测试1
以空格(123)结束;
sample.split('\n').forEach(文件名=>{
常量m=/\s\(\d+)$/.exec(文件名);
if(m&&m[1]){//if递增,也称为“fileName(n)”
log(m[1]);//在这里使用m[1]字符串执行您的操作
}
});
[0-9]+
,而不是[0-9*]
…如果包含一些应该匹配的字符串和不应该匹配的字符串的示例,通常会很有帮助。@benvc true,我应该让它更明确、更分段以及更多示例。