正则匹配[ ]中内容适用于replace

30 篇文章 0 订阅
15 篇文章 0 订阅

var newMsgFrom = '啊实[尴尬]打实[呲牙]大所大[偷笑]所大撒多'

 var arr= newMsgFrom.match  (/\[[^\]]+\]/g)

输出结果:



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript 正则表达式可以使用 `?` 字符来实现最短匹配。例如,在表达式 `a?` ,`?` 表示前面的字符 `a` 可以出现 0 次或 1 次,所以它会尽可能少地匹配字符串的字符。 例如,如果要匹配字符串 "aaa" 的最短前缀 "a",可以使用表达式 `a?`: ``` let regex = /a?/; let str = "aaa"; let match = str.match(regex); console.log(match[0]); // 输出 "a" ``` 同样的,如果要匹配字符串 "aaa" 的最短后缀 "a",也可以使用表达式 `a?`: ``` let regex = /a?$/; let str = "aaa"; let match = str.match(regex); console.log(match[0]); // 输出 "a" ``` 此外,还可以使用 `*` 和 `+` 字符来实现最短匹配。例如,在表达式 `a*` ,`*` 表示前面的字符 `a` 可以出现 0 次或多次,所以它也会尽可能少地匹配字符串的字符。在表达式 `a+` ,`+` 表示前面的字符 `a` 至少出现 1 次,所以它也会尽可能少地匹配字符串的字符。 例如,如果要匹配字符串 "aaa" 的最短前缀 "a",可以使用表达式 `a*`: ``` let regex = /a*/; let str = "aaa"; let match ### 回答2: 正则表达式,默认是最长匹配。如果想要实现最短匹配,可以使用非贪婪模式。在正则表达式后面加上"? "即可设置非贪婪模式。 例如,我们有字符串"ababab",想要匹配的"aba"。如果使用正则表达式 /a.*a/ ,它将会匹配整个字符串"ababab",这是最长匹配。如果我们想要实现最短匹配,可以使用非贪婪模式,将正则表达式修改为 /a.*?a/ 。这样,它将会匹配到最短的"aba"。 在非贪婪模式,"."表示匹配任意字符,"*"表示重复0次或多次,"? "表示非贪婪匹配。 在JavaScript,非贪婪模式也适用于其他正则相关的方法,如replace()、split()等。可以通过在相应的方法使用非贪婪模式来实现最短匹配。 ### 回答3: 在JavaScript正则表达式默认使用贪婪模式进行匹配,即尽可能多的匹配符合条件的字符。但是有时候我们希望对某些特殊情况进行最短匹配。 要实现最短匹配,可以使用非贪婪量词`?`。在正则表达式,`?`用于表示在匹配模式的后面添加一个问号,表示尽可能少的匹配。 举例来说,假设我们有一个字符串`"abbbbc"`,我们想要匹配最短的连续的`b`字符。如果使用贪婪模式,那么正则表达式`/b+/`会匹配整个字符串`"abbbbc"`,因为它尽可能多的匹配`b`字符。但是如果我们想要匹配最短的连续的`b`字符,可以使用非贪婪量词`?`,即`/b+?/`。这样,它只会匹配到第一个`b`字符。 另外,还可以使用括号来限定最短匹配的范围。例如,假设我们有一个字符串`"abbbbcd"`,我们想要匹配从第一个`b`字符到第一个`c`字符之间的内容。可以使用正则表达式`/b(.*?)c/`,其`.*?`表示任意字符的最短匹配。这样,它会匹配到`"b"`和`"bcd"`之间的内容。 通过使用非贪婪量词`?`和括号来限定最短匹配的范围,我们可以在JavaScript实现最短匹配的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值