javascript - 正则表达式用于查找一个术语之后和另一个术语之前的单词

标签 javascript regex

当前网址为

search/warrington/st-album/title/3

我需要获取 st- 之后的值,而 / 之后没有任何内容。因此,在这种情况下,我只想返回album

我正在使用下面的表达式

var patt= new RegExp((?=/st-(.*?/)));
return patt.exec(url)[1];

这会返回album/

有人可以告诉我上面实例中 after 和 before 的正确表达吗? IE。仅返回 album 而不是 album/

最佳答案

new RegExp((?=/st-(.*?/))); 实际上应该抛出语法错误。

无论如何,为了防止 / 出现在捕获组中,请将其移到该组之外(使用正则表达式文字):

var patt = /(?=\/st-(.*?)\/)/;

我认为不需要前瞻,您可以使用否定字符类而不是惰性量词:

var patt = /\/st-([^/]+)/;

关于javascript - 正则表达式用于查找一个术语之后和另一个术语之前的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17516497/

相关文章:

javascript - 如何使用 Swift 将鼠标悬停在 URL 上进入 WkWebView

regex - 使用正则表达式获取存储在字符串中的YouTube URL

php - 如何用正则表达式匹配 400 到 550 之间的数字?

javascript - RegExp 替换所有字母,但不替换第一个和最后一个字母

javascript - 如何使用 JavaScript 将 ChargeBee 链接添加到 HTML 元素?

JavaScript onscroll 函数不触发

javascript - 是否有一个 javascript 函数返回指定文件的最后修改日期?

javascript - 视差滚动,带有滚动的动画而不是在滚动时激活

Android Kotlin正则表达式替换一个子串,获取被替换的子串

python - 使用 re.match 匹配字符串不起作用