正则表达式从逗号分隔的列表中删除方括号中的后缀

时间:2010-10-16 06:41:57

标签: regex

我需要格式化跟随字符串

name[Name], emloyeeno[Employee Number], joindate[Date Of Join:dd MMM yyyy], email[EMail]

as

name, employeeno, joindate, email

我正在尝试使用正则表达式来解决这个问题,我最好能想到的是

/\[.*]/g

但它没有解决问题,我创建了一个样本here

你能帮我解决这个问题吗?

4 个答案:

答案 0 :(得分:4)

您可以使用negated character class。像[aeiou]这样的东西只与小写元音中的一个完全匹配。 [^aeiou]只匹配其中任何一个。

对于此问题,您可以尝试/\[[^\]]*\]/g

共有3个部分:

  • \[ - 文字[
  • [^\]]* - 除]
  • 之外的任何内容的零重复或多次重复
  • \] - 文字]

如果您懒惰,也可以试试/\[.*?\]/

相关问题

答案 1 :(得分:1)

/\[(.+?)\]/g

这将在括号内强制执行1个或多个字符。也可以使用parens来提取匹配。

答案 2 :(得分:1)

这是因为你的正则表达式/ [。*] / g是一个greedy正则表达式。

正则表达式匹配第一个[和最后一个]之间的所有字符。

您需要将正则表达式更改为/[.*?]/ g

答案 3 :(得分:0)

这是因为你的正则表达式是greedy

您需要将正则表达式修改为[。*?]

您需要将其修改为给定的here