在Regex 下执行时出错
/^"?(w*d*s*-*/*'*)+"?$/
它可能是重复的,但我找不到确切的解决方案。
下面是场景。字符串可以接受:
a: 它只能在字符串的开始和结束处接受双引号" "
,而不能在两者之间。
b: 以下是只允许使用的内容:字母数字、正斜杠("/"(、连字符(-(、撇号('(和空格。
当我输入以下文本时:Hawaii-Newsleetin-Wippp.pdf它给我带来了错误,你可以在这里查看:https://regexr.com/
有人能告诉我我在这里做错了什么吗。
提前感谢
这里的问题是模式中间的量化组中的可选模式,它会导致非匹配输入的灾难性回溯。
然而,这并不是正则表达式的唯一问题,因为它还允许不成对的双引号。
要修复正则表达式,请使用
/^("?)[ws/'-]+1$/
查看regex演示
详细信息
^
-字符串的开头("?)
-组1:可选"
[ws/'-]+
-1个或多个字母、数字、_
、空白、/
、'
或-
(如果不需要_
,则用A-Za-z0-9
替换w
(1
-对组1的反向引用,与组1中捕获的值匹配$
—字符串结束