gpt4 book ai didi

regex - 如何使用# 作为 CoffeeScript heregex 的一部分?

转载 作者:行者123 更新时间:2023-12-04 23:27:56 25 4
gpt4 key购买 nike

我正在尝试像这样匹配 jQuery Mobile URL 的哈希片段:

    matches = window.location.hash.match ///
# # we're interested in the hash fragment
(?:.*/)? # the path; the full page path might be /dir/dir/map.html, /map.html or map.html
# note the path is not captured
(\w+\.html)$ # the name at the end of the string
///

然而,问题是 # 符号从编译后的 JS 文件中的正则表达式中被截断,因为它被视为注释的开始。我知道我可以切换到普通的正则表达式,但是有什么方法可以在此处的正则表达式中使用 # 吗?

最佳答案

以通常的方式逃避它:

matches = window.location.hash.match ///
\# # we're interested in the hash fragment
(?:.*/)? # the path; the full page path might be /dir/dir/map.html, /map.html or map.html
# note the path is not captured
(\w+\.html)$ # the name at the end of the string
///

这将编译为这个正则表达式:
/\#(?:.*\/)?(\w+\.html)$/

\## 相同在 JavaScript 正则表达式中。

您也可以使用 Unicode 转义符 \u0023 :
matches = window.location.hash.match ///
\u0023 # we're interested in the hash fragment
(?:.*/)? # the path; the full page path might be /dir/dir/map.html, /map.html or map.html
# note the path is not captured
(\w+\.html)$ # the name at the end of the string
///

但没有多少人会认出 \u0023作为哈希符号,所以 \#可能是更好的选择。

关于regex - 如何使用# 作为 CoffeeScript heregex 的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492954/

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