gpt4 book ai didi

正则表达式 - 连字符应该被转义吗?

转载 作者:行者123 更新时间:2023-12-03 04:17:18 33 4
gpt4 key购买 nike

连字符是正则表达式中的特殊字符,例如,要选择范围,我可以执行以下操作:

[0-9A-F]

但是在方括号之外它只是一个常规字符,对吗?我已经在几个在线正则表达式测试器上对此进行了测试,连字符似乎充当方括号之外的普通字符(或者甚至在方括号内部,如果它不在两个字符之间 - 例如 [-g] 似乎匹配- 或 g) 无论它是否被转义。我找不到这个问题的答案,但我想知道转义连字符是否符合惯例。

最佳答案

各方面都正确。在字符类之外(这就是所谓的“方括号”),连字符没有特殊含义,在字符类内,您可以将连字符作为范围中的第一个或最后一个字符(例如 [- a-z][0-9-]),OR 转义它(例如 [a-z\-0-9])以便将“连字符”添加到您的类(class)中。

更常见的情况是在字符类中将连字符放在第一个或最后一个,但你绝不会因为选择逃避它而被一群愤怒的颈 mustache 私刑处死。

(实际上...我的经验是,很多正则表达式是由那些没有完全掌握语法的人使用的。在这些情况下,您通常会看到所有内容都被转义(例如 [a-z\%\$\#\@\!\-\_]) 只是因为工程师不知道什么是“特殊”、什么不是……所以他们“谨慎行事”并用大量的内容来混淆表达式过多的反斜杠。在使用正则表达式语法之前花时间真正理解它,这对你自己、你的同代人和你的子孙来说都是一个巨大的帮助。)

好问题!

关于正则表达式 - 连字符应该被转义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9589074/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com