Regex错误:表达式的执行时间超过250毫秒



在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中捕获的值匹配
  • $—字符串结束

最新更新