javascript - 在 javascript 中使用正则表达式查找所有出现的情况,但不包括特定字符串

标签 javascript regex

所以基本上给定这个字符串iiisdoso,我想提取之前字符串的所有部分,但不包括字母o。 所以基本上是 iiisds。 我目前只有

const data = "iiisdoso"
const regex = /(.*?)o/g

console.log(data.match(regex))

但此结果包含 o,但我的目标是返回最多但不包括 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”之前。但是为什么我们在最后得到第三个空字符串?

关于javascript - 在 javascript 中使用正则表达式查找所有出现的情况,但不包括特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61243506/

相关文章:

javascript - 在 Javascript 中绘制多条三 Angular 形线

javascript - 展开选择框时未触发 jQuery keypress/keyup/etc 事件

javascript - Coffeescript 多行正则表达式替换困惑

c - 从C语言的文本文件中读取格式化数据

javascript - 我希望我的显示/隐藏 Jquery 脚本始终显示隐藏内容之一,并且永远不会一次显示超过 1 个隐藏文本

javascript - 未捕获的 TypeError : this. get(...).toArray 不是函数(...)

javascript - shallowMount 在延迟加载组件时表现得像 mount

regex - 如何在 Ubuntu 中使用 bash 反转文件中的所有单词?

javascript - 如何在下面的示例中使用正则表达式?

javascript - 如果在文本区域中找到有效的 URL,则调用函数