正则表达式['!@#$%*\]\[() - = _ + {}:\";?,.\/A-Za-z0-9\s]允许<字符

Dev*_*Dev 3 javascript c# regex regex-group

我使用https://regex101.com/来测试我的下面的正则表达式,但是这个表达式允许<表达式中没有提到的<字符.

['!@#$%*\]\[()-=_+{}:\";?,.\/A-Za-z0-9\s]
Run Code Online (Sandbox Code Playgroud)

Mar*_*oun 8

- 表示字符类内的范围.

您在正则表达式中匹配的范围是")"和"="之间出现的所有字符,因为:

['!@#$%*\]\[()-=_+{}:\";?,.\/A-Za-z0-9\s]
             ? ?
Run Code Online (Sandbox Code Playgroud)

它们之间出现"<"符号(见这里):

在此输入图像描述

你需要:

  • 逃避它,或
  • 将它移到课程的结尾(或开头)

改成:

['!@#$%*\]\[()=_+{}:\";?,.\/A-Za-z0-9\s-]
Run Code Online (Sandbox Code Playgroud)

更简单的例子:

[1-9]
Run Code Online (Sandbox Code Playgroud)

匹配"1"到"9"的数字,而:

[19-]
Run Code Online (Sandbox Code Playgroud)

[1\-9]
Run Code Online (Sandbox Code Playgroud)

匹配"1","9"和" - ".

  • https://i.stack.imgur.com/ZpM2x.png若要将图像添加到答案中. (2认同)