首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在特定字符regex之间选择文本

在特定字符regex之间选择文本
EN

Stack Overflow用户
提问于 2014-07-17 01:14:33
回答 4查看 92关注 0票数 1

假设我有以下字符串:

代码语言:javascript
复制
1: /kb/tags/racing?&foo=bar
2: /kb/tags/racing 
3: /kb/tags/racing#hash
4: /kb/tags/racing:foo:bar#hash
5: /kb/tags/racing?&foo=bar#hash

比赛:

代码语言:javascript
复制
1: Should match "racing"
2: Should match "racing"
3: Should match "racing"
4: Should match "racing:foo:bar"
5: Should match "racing"

以下是我尝试过的(&失败的):

代码语言:javascript
复制
/(?<=[kb\/tags])[^\?|\#]*(?=})/

不管怎么说这都没用..。但我挖了个洞,有什么主意吗?

干杯

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-17 01:19:40

用这个:

代码语言:javascript
复制
\/kb\/tags.*/([^/?#\s]+)(?!.*\/)

并从捕获组1中检索火柴。

在演示中,请参见右侧窗格中的第一组捕获

示例JavaScript:

代码语言:javascript
复制
var myregex = /\/kb\/tags.*\/([^\/?#\s]+)(?!.*\/)/;
var matchArray = myregex.exec(yourString);
if (matchArray != null) {
    thematch = matchArray[1];
} else {
    thematch = "";
}

解释

  • \/kb\/tags匹配/kb/tags
  • .*匹配任何字符
  • /匹配正斜杠
  • ([^/?#\s]+)周围的括号捕获一个或多个字符,这些字符不是组1括号内的字符
  • 负前瞻(?!.*/)断言,下面不是anychars,然后是正斜杠,确保我们得到了最后一个斜线。

参考

  • 查找和查找零长度断言
  • 掌握向前看和向后看
票数 1
EN

Stack Overflow用户

发布于 2014-07-17 01:23:47

我猜你想

代码语言:javascript
复制
(str.match(/(?<=kb\/tags\/)[^?#]*/) || [])[0]

但是JS不支持后面的查找。然后,您可以尝试一个捕获组:

代码语言:javascript
复制
(str.match(/kb\/tags\/([^?#]*)/) || [])[1]
票数 1
EN

Stack Overflow用户

发布于 2014-07-17 01:57:50

假设您的href将在您的示例中类似,那么这样的情况如何?

Javascript

代码语言:javascript
复制
var hrefs = [
    '/kb/tags/racing?&foo=bar',
    '/kb/tags/racing',
    '/kb/tags/racing#hash',
    '/kb/tags/racing:foo:bar#hash',
    '/kb/tags/racing?&foo=bar#hash',
    'http://example.com/kb/tags/breeding:racing:breeding:all+articles?&sdff=sfff#jsdf'
];

hrefs.forEach(function (href) {
    console.log(href.split('#').shift().split('?').shift().split('/kb/tags/').pop());
});

输出

代码语言:javascript
复制
racing
racing
racing
racing:foo:bar
racing
breeding:racing:breeding:all+articles 

jsFiddle

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24793366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档