具有特殊字符的正则表达式,如|

时间:2015-04-06 14:59:34

标签: regex expression special-characters

我正在寻找一种构建长正则表达式的方法,该表达式包含几个具有特殊字符的项目,这些字符也是正则表达式命令,例如:

"浴缸|黑"和#34;浴缸|绿色"

我如何将它们用作" string"与|内?

我想过

(Bath Tub|Showers) \| (Black|Green)

但又有一些像" Bath Tub |绿色(浅色)"和#34;浴缸|绿色(黑暗)"所以我也需要添加它,所以我认为在某些情况下,这将是最好的解决方案,只需采取它

"Bath Tub | Green (light)"|"Bath Tub | Green (dark)" 

如果可行的话。

知道怎么做吗?我对正则表达式非常可怕而且它让我很头疼,所以我很感激任何帮助!

亲切的问候

1 个答案:

答案 0 :(得分:0)

您可以将它们全部添加到交替列表中:

Bath Tub|Showers|Black|Green(?: \((?:light|dark)\))?

查看example

重点是所有这些替代方案都可以添加到列表中(以|分隔),如果您在这些字符串后面有其他单词,则可以将它们添加为可选非捕获群组(?: \((?:light|dark)\))?)。另外,请注意转义的圆括号 - 它们将作为文字匹配。

如果要匹配字符串|中的文字管道符号,则应该将其转义:\|。请参阅this example

要匹配"Bath Tub | Green (light)"|"Bath Tub | Green (dark)"中的所有条目以及引号,您可以在模式的开头和结尾添加带引号的可选组:(?:")?(?:Bath Tub|Showers|Black|Green(?: \((?:light|dark)\))?)(?:")?。另见example