Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 带有特殊字符的正则表达式,如|_Regex_Expression_Special Characters - Fatal编程技术网

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

Regex 带有特殊字符的正则表达式,如|,regex,expression,special-characters,Regex,Expression,Special Characters,我正在寻找一种方法来构造一个长正则表达式,其中包含几个带有特殊字符的项,这些字符也是正则表达式命令,例如: “黑色浴缸”和“绿色浴缸” 我如何使用它们作为“字符串”和|内部 我想到 (Bath Tub|Showers) \| (Black|Green) 但是,还有像“浴缸绿色(浅)”和“浴缸绿色(深)”这样的项目,所以我也需要补充一下,所以我认为在某些情况下,像这样做是最好的解决方案 "Bath Tub | Green (light)"|"Bath Tub | Green (dark)"

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

“黑色浴缸”和“绿色浴缸”

我如何使用它们作为“字符串”和|内部

我想到

(Bath Tub|Showers) \| (Black|Green)
但是,还有像“浴缸绿色(浅)”和“浴缸绿色(深)”这样的项目,所以我也需要补充一下,所以我认为在某些情况下,像这样做是最好的解决方案

"Bath Tub | Green (light)"|"Bath Tub | Green (dark)" 
如果那样行得通的话

知道怎么做吗?我真的很讨厌regex,它让我很头痛,所以我非常感谢任何帮助


亲切问候

您可以将其全部添加到备选列表中:

Bath Tub|Showers|Black|Green(?: \((?:light|dark)\))?
看一看这张照片

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

如果要匹配字符串
\
中的文字管道符号,应将其转义为:
\\\
。看


要匹配“浴缸绿色(浅)”和“浴缸绿色(深)”中的所有条目以及引号,您可以在模式的开始和结束处添加带引号的可选组:
(?:)(?:)(?:浴缸|淋浴|黑色|绿色(?:\((?:浅|深)\)(?:)(?:”)
。再看另一个。

您想精确匹配什么?什么语言/雷鬼风格?括号也很特殊。我想匹配div id的名称或类名。语言是非常感谢的,我会尝试一下,玩一玩,然后报告:)好的,我发现了一个收费问题。我想使用正则表达式作为过滤器,它允许我从一个长列表中只获取特定的项。。。有时我需要黑色而非绿色的浴缸,需要浅色而非深色的浴缸。我怎样才能让它更像一个列表,在这里我预先定义了应该找到什么和不应该找到什么?最好的方法是创建一个你想要匹配的列表,然后使用它来获得你想要的。比如说,要为列表中的所有项目添加可选的“过滤器”,您可以将整个列表放入一个捕获组,另一个可选组将应用于所有项目:
(?:浴缸|淋浴|黑色|绿色)(?:\((?:浅|深)\)?
看看: