1. 今天的例子是关于竖线的
例1:正则匹配包含至少 1 个 a 或 1 个 b
创建一个正则表达式以匹配字符 “a” 或 “b”,可以使用竖线符号 (|
) 来表示或操作,正则表达式将匹配任何包含 “a” 或 “b” 的字符串。这里是一个简单的例子:
a|b
这个正则表达式匹配任何包含至少一个 “a” 或至少一个 “b” 的字符串。
例2:正则匹配只包含 1 个 a 或 1 个 b
如果你想确保整个字符串只包含一个字符,并且这个字符是 “a” 或 “b”,可以使用如下的正则表达式:
^(a|b)$
^
表示字符串的开始。(a|b)
表示匹配 “a” 或 “b”。$
表示字符串的结束。
这样,只有完全是 “a” 或 “b” 的字符串会被匹配。
2. 竖线
在正则表达式中,竖线符号 |
被用作逻辑“或”操作符。它用于分隔在模式匹配中可选择的不同选项。具体来说,它允许你定义一个模式,该模式可以匹配多个子模式中的任何一个。
|
表示逻辑上的“或”操作,用于在多个模式之间进行选择。- 可以通过圆括号
()
进行分组,以精确控制“或”操作的范围。
2.1 基本用法
假设你想匹配字符串 “cat” 或 “dog”,你可以使用如下正则表达式:
cat|dog
这个表达式表示可以匹配 “cat” 或 “dog”。在此情况下,如果输入字符串包含 “cat” 或 “dog”,都将被视为匹配。
#组合使用
竖线符号可以与圆括号 ()
结合使用,以将“或”操作限制在特定的子表达式中。例如,如果你想匹配 “cat” 或 “cats”,可以使用如下表达式:
cat(s|)
这里,(s|)
表示匹配 “s” 或者不匹配任何东西,因此这个表达式可以匹配 “cat” 或 “cats”。
2.2 复杂表达式中的使用
竖线符号可以用在更复杂的表达式中,以提供多个匹配选项。例如,如果你想匹配 “cat”、“dog” 或 “fish”,可以写成:
cat|dog|fish
如果想进一步将这个选择限制在某个更复杂的模式的一部分,可以使用圆括号进行分组。例如,如果你想匹配 “I have a cat”、“I have a dog” 或 “I have a fish”,可以使用:
I have a (cat|dog|fish)
在这个例子中,I have a
是所有选择共有的部分,而 (cat|dog|fish)
表示三个可选的匹配项。