Javascript 正则表达式,如何匹配但只捕获符号后面的内容
例如,我有一组字符串,格式为“/something/@where”“/some/#whatiwant” 在这种情况下,我只对后面发生的事情感兴趣 对于建议的两个副本: 被接受的答案没有我接受的那么简洁,老实说,如果我能想出一种方法来搜索“regex,在一件事之后,在另一件事之前找到任何东西”,我会感到困惑Javascript 正则表达式,如何匹配但只捕获符号后面的内容,javascript,regex,Javascript,Regex,例如,我有一组字符串,格式为“/something/@where”“/some/#whatiwant” 在这种情况下,我只对后面发生的事情感兴趣 对于建议的两个副本: 被接受的答案没有我接受的那么简洁,老实说,如果我能想出一种方法来搜索“regex,在一件事之后,在另一件事之前找到任何东西”,我会感到困惑 是regex的参考手册,不是我问题的答案,如果它是我问题的答案,所有regex问题都应该发送到那个方向,因此是重复的。regex应该是[^#]+#(.+)这取决于你使用的是什么风格的reg
是regex的参考手册,不是我问题的答案,如果它是我问题的答案,所有regex问题都应该发送到那个方向,因此是重复的。regex应该是
[^#]+#(.+)
这取决于你使用的是什么风格的regex,但你想要的是积极的回头看:
(?<=#).*
在本例中,捕获组1中
后面的非空白(对于\S+
)
var testString = "/some/#whatiwant";
var testOutput = testString.match(/#(\S+)/)[1];
// alert(testOutput);
如果要同时使用#
和@
进行解析,请使用字符类[]
var testOutput = testString.match(/[#@](\S+)/)[1];
尝试:
var arr=[“/something/@where”、“/some/#whatiwant”];
var reg=/[#@](\w+)$/;/#和@符号后的匹配
对于(变量i=0;i
RegExp
在#
和@
之后进行匹配(如果不希望@
继续匹配,只需将其从RegExp
中删除即可)
只在
#
之后还是@
之后?到目前为止,你的正则表达式是什么?你想要的文本总是在字符串的末尾吗?哈哈……这是我应该搜索的一件事“在另一件事之前找到任何事情”我想我没有找到我上面的评论谢谢你,这正是我要找的就可以了。“or”在字符类中是隐式的,因此[||@]
匹配
或
或@
@alanmore是的,很好:)
var testOutput = testString.match(/[#@](\S+)/)[1];
var arr = ["/something/@wherever","/some/#whatiwant"];
var reg = /[#@](\w+)$/; // matchs after # and @ signs
for ( var i = 0; i < arr.length; i++ ) {
console.log(reg.exec(arr[i])[1]);
}