regex - 如何匹配 'a' 或 '^'

标签 regex

<分区>

对于这个问题,我已经回答了一个|\^,但被告知预期的答案是[a^] 后一种解决方案是否比前一种更有效?

最佳答案

这两种解决方案都是有效的,并且从根本上实现了相同的目标。 [a^] 可能 更有效,具体取决于所讨论的正则表达式实现 — 在解析正则表达式时,引擎知道 [] 中的任何内容必须匹配单个字符,而 | 可以处理任意长度的替代方案 — 然而,这纯粹是推测,我敢猜测大多数真实的正则表达式引擎都可以处理这种常见情况相当有效。除非你打算benchmark your code来确定哪些部分是瓶颈,它们可以被认为是等价的。

还有一些其他的小权衡;例如,[a^] 不需要在 () 中包装,如果您将它放在某物旁边,但是 a|\^做。 IMO,[a^] 令人困惑,因为它看起来像有人试图编写 [^a](除 a 之外的任何字符)但是做了一个打字错误。但是,(?:a|\^) 非常冗长。权衡这些权衡是一种风格/主观问题。

关于regex - 如何匹配 'a' 或 '^',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60163530/

相关文章:

c++11正则表达式比python慢

python - 正则表达式 Python [python-2.7]

regex - JFlex 字符串正则表达式奇怪的行为

java - 字符串替换正则表达式仅在 [] 之外使用标记

php - 使用正则表达式检查管道符号

用于在类似 BB 代码的标签中查找属性的正则表达式

Javascript:操作字符串以删除下划线并将字母大写

javascript - 转义不适用于 jQuery 选择器的特殊字符

javascript - 如何制作像 Google chrome find (Ctrl + F) 这样的过滤器组件来检测文本并更改其背景颜色

regex - YouTube视频网址正则表达式