([^"]+)
()括号是分组用,在这个表达式里没有作用
[^"]意思是不包含"这个字符
+意思是至少一个或多个
/^[^?]+??/
注释:
- 最前面的/和最后面的/表示正则表达式的开始和结束,没实际意义,所以正则表达式为^[^?]+??
- 第一个^表示匹配文本的开头,[]表示匹配满足内部条件的字符,[]里面的^?表示除了?以外的任意字符
- []后面的+表示匹配的次数为1次或大于1次,一直到?才匹配结束,?表示?字符,最后一个?表示匹配一次或0次
规则
- . 匹配除换行符以外的任意字符
- w 匹配字母或数字或下划线或汉字 等价于 '[^A-Za-z0-9_]'
- s 匹配任意的空白符
- S 匹配任何非空白字符
- d 匹配数字
- 匹配单词的开始或结束
- ^ 匹配字符串的开始
- $ 匹配字符串的结束
- 如果要替换 2 个字符,直接将两个筛选写在一起即可,不需要分隔符;
举例:
代码:
name = 'aaa bbb ccc';
uw=name.replace(/w+/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);
分析:
- w+ == 字符串开始,w + 所有字符,+ 表示连续的字符(类似于s+ 表示连续的空格), 结束
- word.substring(0,1): 截取字符串的的第一个字符串,左闭右开,所以只选中索引 = 0 的;stringObject.substring(start,stop)
- toUpperCase() 大写
- word.substring(1):如果只是写一个参数,表示截取从当前下标,直到最后的字符串片段,包括当前下标;
REGEX:(?insx)/[^?/]*.(css|ico|jpg|png|gif|bmp|wav|js)(?.*)?$
看懂如下文章就够了:
https://www.cnblogs.com/eastegg/p/7977529.html
regex:(?isx)^http://127.0.0.1:3000(/dlscene)?/order/(w*)
注释:
- ^ 开始
- (/dlscene)? 可有可无
- (w*) 任何字符,出现0-n次
- (?isx) 修正符:
- i 不区分大小写
- s 表示将字符串视为单行,换行符作为普通字符
- x 表示将模式中的空白忽略
- g表示全局匹配
- m 将字符串视为多行,不管是那行都能匹配
- A 强制从目标字符串开头匹配
- D 如果使用$限制结尾字符,则不允许结尾有换行
- U 只匹配最近的一个字符串;不重复匹配
-
---n 表示指定的唯一有效的捕获是显式命名或编号的形式。也就是说如果使用了“n”修正符,想在表达式中使用括号,在下面使用变量接受是收不到的。
例如期望匹配值为:http://127.0.0.1:8020/abba/lyb/lyblist
表达式为:
regex:(?inx)^http://127.0.0.1:d*/(w*)/lyb/lyblist
下面如果想用变量接收括号中内容是收不到的。
http://127.0.0.1:8080/$1/lyb/lyblist
这样输出的结果是 “http://127.0.0.1:8080/$1/lyb/lyblist” ,而不是期望的“http://127.0.0.1:8080/abba/lyb/lyblist”
可以匹配的结果:
- http://127.0.0.1:8080/dlscene/order/$2
- http://127.0.0.1::3000/dlscene/order/xx
- http://127.0.0.1::3000/order/xx
^[w_]*$
首先看w表示匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]',w_
*号:匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。
这个表达式的意思就是把这个[w_](任何单词字符包括下划线,然后跟个下划线)看为一个整体出现零次或多次