正则表达式与特殊字符元字符匹配

regex matching with special characters metacharacters

本文关键字:字符 特殊字符 正则表达式      更新时间:2023-09-26

我正在尝试匹配某些字符串,虽然我必须转义一些特殊字符,但它仍然无法正确匹配。

我有这个

 var first=/.+?(?='[)/i

它仍然匹配整个字符串,只需要匹配第一个 [

这是字符串业务[帐户]

我需要匹配业务,然后匹配帐户。它适用于一个插件,用于稍后使用这些对象符号获取对象符号。每个元素都有不同的属性。

对于这么简单的事情,前瞻并不是真的必要。尝试使用如下所示的字符类:

var first = /[^[]+/

这将匹配除 [ 以外的任何字符的一个或多个。

如果您想将其处理成可以匹配字符串的两个部分的正则表达式,例如 "business[account]" ,请尝试以下操作:

/([^[]+)'[([^']]+)']/

这将匹配除 [ 以外的任何字符中的一个或多个,在第 1 组中捕获,后跟一个[,后跟除]以外的一个或多个任何字符,在第 2 组中捕获,后跟 ] 个。

例如

console.log(/([^[]+)'[([^']]+)']/.exec("business[account]"));
// ["business[account]", "business", "account"]

你快到了;只需添加组(带括号(以匹配您想要的内容:

var m = /(.+?)'[(.+?)']/.exec("business[account]");
console.log("variable: " + m[1], "index: " + m[2]);