我正在尝试匹配某些字符串,而我必须转义一些特殊字符,但它仍然无法正确匹配。
我有这个
var first=/.+?(?=\[)/i
仍然匹配整个字符串,只需匹配第一个[
这是字符串业务[account]
我还需要匹配商家和匹配帐户。它是用于稍后用于获取对象符号的插件。每个元素都有不同的属性。
答案 0 :(得分:2)
对于这么简单的事情,前瞻并不是必需的。尝试使用这样的字符类:
var first = /[^[]+/
这将匹配除 [
以外的任何字符中的一个或多个。
如果您希望将其设置为可以匹配"business[account]"
字符串的两个部分的正则表达式,请尝试以下操作:
/([^[]+)\[([^\]]+)\]/
这将匹配在第1组中捕获的 [
以外的任何字符中的一个或多个,后跟[
,后跟一个或多个任何字符< em> {<1>}以外的其他人,在第2组中捕获,然后是]
。
E.g。
]
答案 1 :(得分:2)
你快到了;只需添加组(带括号)即可匹配您想要的内容:
var m = /(.+?)\[(.+?)\]/.exec("business[account]");
console.log("variable: " + m[1], "index: " + m[2]);