匹配特殊字符之间的最后一串

时间:2015-04-17 13:32:55

标签: javascript regex

我想获取特殊字符之间的最后一个字符串。我已经为\[(.*)\]$

做了方括号

但是,当我在Blah [Hi]How is this[KoTuWa]之类的东西上使用它时。我得到的结果为[Hi]How is this[KoTuWa]

如何修改它以获取最后一个字符串KotuWa

另外,我想概括为一般特殊字符,而不是像上面那样仅仅匹配方括号之间的字符串。

谢谢, 西

3 个答案:

答案 0 :(得分:5)

我会这样做:

[^[\]]+(?=][^[\]]*$)

Regular expression visualization

Debuggex Demo

要将此扩展到其他类型的括号/特殊字符,请说我还想匹配花括号{和双引号"

[^{}"[\]]+(?=["\]}][^{}"[\]]*$)

Regular expression visualization

Debuggex Demo (我添加了多行/m仅显示多个示例)

答案 1 :(得分:1)

您可以要求括号中的字符串不包含括号:

编辑:感谢funkwurm和jcubic指出错误。这是fixed expression

\[([^[]+)\][^\[]*$

如果您需要使用除括号之外的其他分隔符,您应该:

  • 用新分隔符替换\[\]
  • 用起始分隔符替换负字符类。

例如,假设您需要使用分隔符<>而不是[],那么您需要this

<([^<]+)>[^\>]*$

答案 2 :(得分:0)

这是一种方法:

   \[([^\[]*)\]$