正则表达式筛选括号中的值

时间:2013-08-25 20:51:51

标签: regex

我一直在尝试获取正确的过滤器:

{0}{1/2}{R/G}{X}{Y}{Z}{R}{R}

我在rubular.com上试过这个(http://rubular.com/r/niCiKoUfmN):

\{([0-Z])\}

我明白了:

{0}{X}{Y}{Z}{R}{R}

但我没有得到:

{1/2}{R/G}

如何编写正则表达式以便获取所有内容?

6 个答案:

答案 0 :(得分:4)

\{(\w)(?:\/(\w))?\}

Regular expression visualization

Edit live on Debuggex

答案 1 :(得分:1)

一种激进的方式是使用一个带有你想要避免的字符的否定字符类:

\{([^}]*)\}

[^}]表示除}

以外的所有字符

*表示零次或多次

答案 2 :(得分:0)

您的群组中没有斜杠标志(/)。此外,您必须添加一个量化器来告诉解析器,允许括号中的更多字符:

\{([0-Z/]+)\}

答案 3 :(得分:0)

您可以通过添加可选的/[0-Z]

来实现

哪个会给你:

\{([0-Z](\/[0-Z])?)\}

Rubular:http://rubular.com/r/3D0VPCaJX7

答案 4 :(得分:0)

这应该这样做:

\{[0-Z\/]+\}

您不需要括号,除非您想要将匹配的子集用于其他内容。

答案 5 :(得分:0)

您需要包含0个或多个/子句的包含。

<强> Debuggex Demo

\{([0-Z][\/0-Z]*)\}

Regular expression visualization

Edit live on Debuggex

javascript中

jsFiddle Demo