现在我有两个正则表达式可以做到这一点:
Regex-1 = "(\\{(\\w+)\\})";
Regex-2 = "(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})";
我只是希望能够将两个正则表达式合二为一,所以Regex首先搜索的将是匹配。
从概念上讲,我在想regex-1 ||正则表达式-2。这有可能结合起来吗?
感谢。
答案 0 :(得分:1)
你的意思是这样吗?
Regex-1_2 = "(\\{(\\w+)\\})|(\\{([^\\|]*)\\|([^\\|]*)\\|([^\\|]*)\\})";
编辑:
那么,这样的事情呢?
{(((\w+)|({\w+}))\|?)*}
编辑2:
您的上一条评论有帮助。所以,从头到尾工作。你知道你想匹配一个开放的花括号,所以这部分很简单:
{
现在,在第一个花括号之后,有两个选项。要么会有一个或多个字母数字(或下划线)字符,要么会有三组由管道分隔的零个或多个字符。前两个组必须是非管道字符,而最后一个组必须是非大括号括号字符(因为大括号将关闭表达式)。这可以使用交替构造表达:
{(\w+|[^|]*\|[^|]*\|[^}]*)
最后,表达式以大括号结束:
{(\w+|[^|]*\|[^|]*\|[^}]*)}
这适用于您提供的示例。如果您的规则不同或更具体,您需要这样说。