两种:java
var reg = new RegExp('xxxxx') 或 var reg = new RegExp(/xxxxx/)正则表达式
( [ { ^ $ | ) ? * + .app
/[abc]/ 意思是,在一个位置能够出现的字符可能为a或b或c
eg:this
/[abc]/.test('a') === true
(): 容许重复多个字符(分组)
eg:code
// count字符串连续出现两次 countcount /(count){2}/.test('countcount') === true // 匹配 bad 或 dad 而且每一个只能出现零次或者一次 ([bd]ad?)
贪性量词: 指上面全部的简单量词
特色 : 匹配时,拿到整个字符串,从后往前,不匹配的去除
eg:javascript正则
var str = 'aabbcccddaaabbbccccbbbb111' var reg = /.*ccc/g //贪婪 console.log(reg.exec(str)) //["aabbccddaaabbbcccc", index: 0, input: "aabbccddaaabbbccccbbbb111", groups: undefined]0: "aabbccddaaabbbcccc"groups: undefinedindex: 0input: "aabbccddaaabbbccccbbbb111"length: 1__proto__: Array(0)] console.log(str.match(reg)) //["aabbccddaaabbbcccc"]
惰性量词: 在简单量词后加'?'
特色: 与贪性量词相反,从首个字符开始匹配对象
var str = 'aabbcccddaaabbbccccbbbb111' var reg = /.*?ccc/g; console.log(reg.exec(str)) console.log(str.match(reg)) // ["aabbccc", index: 0, input: "aabbcccddaaabbbccccbbbb111", groups: undefined] // ["aabbccc", "ddaaabbbccc"]
"baddad".match(/([bd]ad?)*/) 结果: ["baddad", "dad", index: 0, input: "baddad", groups: undefined] 第一个参数 为 正则匹配结果, 第二个参数 为 分组(括号内)的表达式匹配的结果
若是不想匹配到括号内的结果, 能够使用非捕获性分组?:ip
"baddad".match(/(?:[bd]ad?)*/) 结果: ["baddad", index: 0, input: "baddad", groups: undefined]
var reg = /this is a apple|banana|orange/ reg.test('this is a apple') === true reg.test('this is a banana') === true