\\ s,对于正则表达式,为什么我们需要2“\”

时间:2015-11-19 21:52:48

标签: regex

我正在做一个正则表达式HW,我对转义图标“\”感到困惑 为了。 * ^()[] +? | \ (空间)。

如果我们需要使用实际符号,我们需要“\”将它们放在表达式中,但为什么我们需要两个“\”?比如“\\ s”。

我认为“\ s”就足够了,因为我知道在unix中,“\”表示我在输入中需要那个空格。

2 个答案:

答案 0 :(得分:0)

即使在您的问题中,您也会看到效果。看看你在哪里写like "\\s"?您的问题显示为like "\s"

因为您需要使用\转义\\以通过StackOverflow使用的Markdown解释器并从另一端获取一个\,然后您可以在正则表达式。

(现在你已经围绕它进行了编辑。但是这个想法仍然存在 - 你只需要一个\正则表达式,但你可能需要不止一个才能通过你正在使用的任何编辑器/环境/解释器/编程语言并进入正则表达式引擎)。

答案 1 :(得分:0)

在这种情况下,反斜杠和很多其他用于escape sequences的反斜杠。逃避字符意味着,(非常)简短,"以下并不意味着它通常做什么"。您已经在正则表达式中使用过此字符:您编写的\s指定字符' s'不是常规的',而是空白令牌。

听起来您使用的语言也使用反斜杠来转义字符串。这意味着反斜杠字符通常是一个转义字符,但是出于你想要保存的字符串的目的,你实际上想要字符\ - 不同于它通常代表的字符。要做到这一点,你必须使用第一个反斜杠说"下面的反斜杠并不像通常那样表示转义序列,而只是常规字符"。