0

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

{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}

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

4

6 回答 6

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

正则表达式可视化

在 Debuggex 上实时编辑

于 2013-08-25T21:09:06.910 回答
1

一种激进的方法是使用带有您要避免的字符的否定字符类:

\{([^}]*)\}

[^}]表示除}

*表示零次或多次

于 2013-08-25T20:58:43.297 回答
0

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

\{([0-Z/]+)\}
于 2013-08-25T20:58:55.533 回答
0

您可以通过添加一个可选的来做到这一点/[0-Z]

这会给你:

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

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

于 2013-08-25T20:59:04.093 回答
0

这应该这样做:

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

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

于 2013-08-25T21:00:00.217 回答
0

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

Debuggex Demo

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

正则表达式可视化

在 Debuggex 上实时编辑

jsFiddle Demo在javascript中

于 2013-08-25T21:00:07.887 回答