([\s\w\.-]*)这个正则表达式有s什么w用

  这个是正则表达式的模式修飾符  (?i)即匹配时不区分大小写。表示匹配时不区分大小写  (?s)即Singleline(单行模式)。表示更改.的含义使它与每一个字符匹配(包括换行 符\n)。  (?m)即Multiline(多行模式) 表示更改^和$的 含义,使它们分别在任意一行的行首和行尾匹配而不仅仅在整个字符串的开头和结尾匹配。(在此模式下,$的 精确含意是:匹配\n之前的位置以及字符串结束前的位置.)  (?x):表示如果加上该修饰符表达式中的空白字符将会被忽略,除非它已经被转义  (?e):表示本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码  (?A):表示如果使用这个修饰符,那么表达式必须是匹配的字符串中的開头部分比如说"/a/A"匹配"abcd"。  (?E):与"m"相反表示如果使用这个修饰符,那么"$"将匹配绝对字符串的结尾而不是换行符前面,默认就打开了这個模式  (?U):表示和问号的作用差不多,用于设置"贪婪模式"

打开App,查看更多内容

}

正则表达式(regular expression)描述了一种字符串匹配的模式可以用来检查一个字符串是否含有某种子串、将匹配的子串做替换或者从某个字符串中取出符合某个条件的子串等

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串、将匹配的子串做替换或者从某个字符串中取出符合某个条件嘚子串等

 js中使用正则表达式,除了了解正则表达式基本的匹配规则外还需要了解下面的基本的知识:

python,js,groovy这些脚本语言都有在线调试的網站,可以在线测试是否有语法错误用起来也很方便。

用于查找在某些内容(但并不包括这些内容)之前或之后的东西如\b,^,$那样用于指定一個位置,这个位置应该满足一定的条件(即断言)因此它们也被称为零宽断言。

在使用正则表达式时捕获的内容前后必须是特定的内容,洏我们又不想捕获这些特定内容的时候零宽断言就可以派上用场了。

  • 零宽度正预测先行断言 (?=exp)
  • 零宽度负预测先行断言 (?!exp)

这四胞胎看着名字好長给人一种好复杂好难的感觉,我们还是挨个来看看它们究竟是干s什么w的吧

(?=exp) 这个简单理解就是说字符出现的位置的右边必须匹配到exp这個表达式。

 

注意一点这里说到的是位置,不是字符

// 这个看起来似乎是正确的,实际上结果是false

reg中a(?=b)匹配字符串'abc' 字符串a的右边是b这个匹配没問题,接下来reg中a(?=b)后边的c匹配字符串时是从字符串'abc'中a的后边b的前边的这个位置开始匹配的

(?!exp) 这个就是说字符出现的位置的右边不能是exp这个表达式。

 

(?<=exp) 这个就是说字符出现的位置的前边是exp这个表达式

 

(?<!exp) 这个就是说字符出现的位置的前边不能是exp这个表达式。

 

图片如果放大也看不清的话

}

我要回帖

更多关于 s/w 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信