正则表达式

/./g 任意字符 (包括空格,但是断行不会匹配)

/w/g 字母数字下划线

/W/g 非字母和数字下划线

匹配数字:

/d/g 匹配阿拉伯数字

/D/g 匹配所有不是数字,包括空格

匹配空白字符:

/s/g 匹配空白字符:空格、制表符、断行等

/S/g 匹配非空白字符


字符集合:

/[abc]/g

/[a-z]/g

/[e-o]/g

/[0-9]/g


/[u4e00-u9fa5]/g

Unicode(所有中文) u4e00 十六进制0x4e00 graphemica.com" 一"-"龥"


重复一次或多次:

/[yY][oO]+/g

重复零个或多个:

/[yY][oO]+[!~.]*/g

重复零个或一个:

/[yY][oO]+p?[!~.]*/g

指定重复范围(重复a到b次)

/yo{1,4}/

yoo
yooo
yoooo
yooooooo

要是我不想要匹配最后一行怎么办

/yo{1,4}/g

: word boundry 字符边界

hoome

list2

list4

PersonDW 0

Person 0

分组匹配—括号:

/(.+)飞飞,(.+)追追/g
李栓蛋飞飞,王花花追追

$1 $2


分组匹配但不捕获

/1(?:37|38|82|83)d{4}(d{4})/g

13712241000
13822232000
18289993000
18398754000

13112241000
17722232000


?:的话就是分组但是不摘出来

$1

正向(肯定)预查(?=模式)

后面肯定有这个字符,但是不匹配他

100元
1000元
100刀
100镑

选中所有以元结尾的数字,不包括元

/d+(?=元)/g

/d+(?!元)/g 正向否定预查(?!模式)

匹配所有后面不是"元"的数字

匹配出了:
10
100
100
100

/d+(?!元|d)/g

匹配所有后面不是元或者数字 的数字

100
100

反向(肯定)预查:

¥100
¥1000
$100
#100

/(?<=¥)d+/g
100
1000


反向(否定)预查:

/(?<!¥|d)d+/g
100
100

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

 

正则表达式中和s有什么区别

 

字符串:abcsdsadas abc asdsadasdabcasdsa
使用sabcs和abc都能匹配中间的abc,这种方法不是重复了么?

不一样
abc匹配的是"abc"
sabcs匹配的不是"abc", 前后还带空格" abc "
只是匹配字符串开头结尾及空格回车等的位置, 不会匹配空格符本身

例如"abc sdsadasabcasdsadasdabcasdsa",
sabcs不能匹配,abc可以匹配到"abc"
 
 
代表字与字中间那个看不见的东西,如

here is a word
那么,这句中有好几个, 每个单词的前后都有一个.

所以你用 here 可以匹配上面这个here,但如果here 不是一个单词,而是一个单词的一部分,如 adheread, 这样的话,用here 可以匹配,用here就不能区配了,因为ad后面没有. 所以 adhere 中的here 不会被匹配。

总结:  就是用在你匹配整个单词的时候。 如果不是整个单词就不匹配。 你想匹配 I 的话,你知道,很多单词里都有I的,但我只想匹配I,就是“我”,这个时候用 I

B就是反过来,代表非字间。 类似d代表数字, D代表非数字。

2018 年10月29日 拾遗

(pattern) 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中则使用$0…$9属性。要匹配圆括号字符,请使用“(”或“)”。

(?:pattern) 匹配pattern但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。

(?=pattern) 正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

(?!pattern) 正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

原文地址:https://www.cnblogs.com/eret9616/p/8798715.html