标签过滤正则表达式的确切含义

时间:2011-06-08 15:14:55

标签: regex

下一个正则表达式过滤一些html标签的style / src属性。

[(?i:s\\*c\\*r\\*i\\*p\\*t)]
[(?i:e\\*x\\*p\\*r\\*e\\*s\\*s\\*i\\*o\\*n)]

除了'修饰符跨度',
什么是“\\ *”?
这是否意味着s * c * r * i * p * t?那么,它对过滤有什么影响吗?

2 个答案:

答案 0 :(得分:1)

在正则表达式中,\\*表示0个或更多文字\字符。因此正则表达式正在寻找单词scriptexpression,可能在字母之间有任意数量的反斜杠,并且可能根本没有反斜杠。

一些匹配的例子:

  • s\c\r\\ipt
  • sc\\\\\ript
  • s\\\c\r\\\ip\\\t
  • script

正如 Qtax 指出的那样,语言在这里很重要。我不认识正则表达式语法,但有些需要反斜杠才能进行双重转义:一次用于主要语言,一次用于正则表达式引擎。这很难解释,但基本上它意味着模式可能只匹配以下两个输入,具体取决于编程语言:

  • s*c*r*i*p*t
  • e*x*p*r*e*s*s*i*o*n

答案 1 :(得分:0)

通常,正则表达式中的\字符会转义特殊字符以抑制它们的特殊含义。实际上它将等于\ n而不是换行符。

这很简单!

只是为了添加答案,相关字符将解析为s \ * c \ * r \ * i \ * p \ * t