所以基本上给定这个字符串,iiisdoso
我想提取字符串的所有部分,但不包括字母o
。所以基本上iiisd
和s
. 我目前只有
const data = "iiisdoso"
const regex = /(.*?)o/g
console.log(data.match(regex))
但此结果包括 o in 但我的目标是返回结果最多但不包括 o
正如评论中已经提到的,您可以使用否定和字符类来实现这一点:
const data = "iiisdoso"
const regex = /([^o]+)/g
console.log(data.match(regex))
这会给你想要的结果
["iiisd", "s"]
但这也匹配任何后面没有“o”的字符串!为避免这种情况,您需要使用
const regex = /([^o]+)o/g
在这种情况下,“o”包含在匹配中,并且必须为结果数组的每个字符串删除 - 例如
mymatch.replace('o','')
有趣:如果你使用
const regex = /([^o]*)/g
结果是
["iiisd", "", "s", "", ""]
这是我不明白的事情。好吧 - 我知道空字符串也与正则表达式匹配,并且可以放在“o”之前。但是为什么我们最后会得到第三个空字符串呢?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句