javascript - 匹配以前缀开头的子字符串

标签 javascript regex

我被一些正则表达式卡住了 我正在尝试使用正则表达式匹配以给定前缀开头的每个子字符串 在 javascript 中

prefix = "pre-"
regex = /???/

"pre-foo-bar bar pre-bar barfoo".replace(regex, '')
// should output "bar barfoo"

最佳答案

/\bpre-\S*\s?/g 有效,假设您也想去除尾随空格(根据您的示例)。如果您想保留它,请使用 /\bpre-\S*/g

更正

\b只查单词字符,-肯定不是单词字符。遗憾的是,JavaScript 不支持自定义回顾。

/(\s|^)pre-\S*/g 应该可以工作,但与上面给出的示例输出相比会有一个前导空格。这将检查“pre-”之前没有任何内容或一个空格字符,然后是 0 个或多个非空格字符。它删除了除空格之外的整个 block 。如果空间对您来说真的很重要,您可以:

str.replace(/(\s|^)pre-\S*\s?/g, function(wholeString, optionalSpaceCharacter) {
    return optionalSpaceCharacter;
});

二次更正

如果你连续有两个,比如“pre-a pre-b pre-c”,我给你的复杂替换将不起作用。由于结尾处有 \s?,您最终会得到 "pre-b "。获得确切所需输出的最佳选择是使用 /(\s|^)pre-\S*/g 并检查原始字符串是否以“pre-”开头,如果是的话,只是从开头删除一个空格。

str.replace(/(\s|^)pre-\S*/g, '').substring(str.substring(0, 4) == "pre-" ? 1 : 0);

关于javascript - 匹配以前缀开头的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785703/

相关文章:

JavaScript - OffFocus 事件?

python - 处理推文时使用 JSON 或正则表达式

php - 删除 perso-arabic 字符串中的隐藏空格

javascript - JQuery 中的明文字段值

javascript - 类型 'pseudoStyle' 上不存在属性 'HTMLElement'

javascript - 通过键选择 JSON 数组对象

php - 正则表达式从完整的<object>获取youtube video ID

javascript - 如何 Hook 按键并获取终端的当前内容?

javascript - Javascript 中的负后视正则表达式

anchor 标签的 PHP 正则表达式匹配