正则表达式学习 简单

这两天对js正则表达式的认识,又有所强化:

1. 正则匹配顺序:

直接看示例: /^\s*(.*)\s*$/gi(愿意是实现trim功能) 匹配文本 " abcd   adddd    "

   由于*的贪婪性,通过^\s* 先顺序读取到文本开头的空格,然后继续匹配,正则的.*匹配了后边所有的内容(而尾部\s*$ 则仅仅匹配了空字符串)

  按照这种匹配顺序,就可以用一种替换方案:先去掉开头的空白,再去掉尾部的空白

2. 反义字符类的使用:

 之前一直有误区,认为直接使用^就可以表示反义,其实正确的说法应该是:

配合[^]才能实现反义字符类

示例:/[^1-9]/  表示匹配的内容不是数字1-9.

3. 一个示例看思维:

 从指定字符串中提取域名和端口号,如:

www.123.com

www.456.com:8080

正则:re = /([^\/\:]*):?(\d*)/ 

(之前一直纠结于/.+:?(\d*)/,明显.+具有贪婪性,直接匹配整个字符串。所有,针对这种场景,需要反过来思考)

原文地址:https://www.cnblogs.com/chyong168/p/2256167.html