gpt4 book ai didi

regex - 为什么/^Apple$/的正则表达式只匹配字符串 "Apple"?

转载 作者:行者123 更新时间:2023-12-02 05:21:51 33 4
gpt4 key购买 nike

我看到一本书的描述......

书上说 /^Apple/ 会匹配字符串开头有一个 Apple 的字符串。所以它将匹配 Apple Apple1 AppleApple AppleABC ......

书上还说 /Apple$/ 会匹配字符串末尾有一个 Apple 的字符串。所以它将匹配 ABCApple 12345Apple 这样的....

但是书上说 /^Apple$/ 只会匹配 Apple 。但我很困惑,我认为 /^Apple$/ 应该匹配以字符串“Apple”开头和字符串“Apple”结尾的字符串,所以像 AppleabcApple 应该匹配,所以我很困惑。

最佳答案

^ 表示字符串(或行,取决于您的正则表达式引擎)的开头。 $ 表示字符串结束。它们与任何字母或数字一样匹配,但匹配“开始”和“结束”而不是特定字符。

因此,^Apple 表示“在字符串开头之后,必须有一个 Apple”。 Apple$ 表示“在 Apple 之后必须是字符串的末尾”。因此,^Apple$ 表示“在字符串的开头之后是 Apple,然后是字符串的结尾”——因此,^Apple$ 只能匹配恰好包含 Apple 的字符串。

如果你想匹配以 and 结尾的字符串 Apple ,你可以这样写

/^Apple.*Apple$/

(如果您想匹配一个可以自身重叠的字符串,例如 eraser(例如匹配 eraseraser),事情会变得更加复杂——如果您的正则表达式引擎允许,您可以尝试混合前瞻/后视:^(?=eraser).*(?<=eraser)$)

关于regex - 为什么/^Apple$/的正则表达式只匹配字符串 "Apple"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17079058/

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