gpt4 book ai didi

javascript - javascript正则表达式(x)、小数点、分界的例子和解释

转载 作者:行者123 更新时间:2023-11-29 09:53:56 28 4
gpt4 key购买 nike

有人可以对 here 中的这些特殊字符示例给出更好的解释吗? ?或者提供一些更清楚的例子?

(x)

The '(foo)' and '(bar)' in the pattern /(foo) (bar) \1 \2/ match and remember the first two words in the string "foo bar foo bar". The \1 and \2 in the pattern match the string's last two words.

小数点

For example, /.n/ matches 'an' and 'on' in "nay, an apple is on the tree", but not 'nay'.

单词边界\b

/\w\b\w/ will never match anything, because a word character can never be followed by both a non-word and a word character.

非单词边界\B

/\B../ matches 'oo' in "noonday" (, and /y\B./ matches 'ye' in "possibly yesterday." totally having no idea what the above example is showing :(

非常感谢!

最佳答案

圆括号(又名捕获组)

括号用于指示正​​则表达式中的一组符号,当匹配时,匹配结果中会“记住”这些符号。每个匹配的组都标有编号顺序,如\1、\2 等。在示例/(foo) (bar)\1\2/中,我们将匹配 foo 记为\1,将匹配 bar 记为\2。这意味着字符串“foo bar foo bar”匹配正则表达式,因为第三和第四项(\1 和\2)匹配第一和第二捕获组(即 (foo) 和 (bar))。您可以像这样在 javascript 中使用捕获组:

/id:(\d+)/.exec("the item has id:57") // => ["id:57", "57"]

请注意,在返回中我们得到了整个匹配项,以及随后捕获的组。

小数点(又名通配符)

小数点用于表示可以具有任何值的单个字符。这意味着正则表达式/.n/将匹配第二个字符为“n”的任意两个字符串。所以 /.n/.test("on")//=> true, /.n/.test("an")//=> true 但是 /.n/.test("or")//=> false. DrC 在评论中提出了一个很好的观点,即这与换行符不匹配,但我觉得要使其成为一个问题,您需要明确指定 multiline mode .

单词边界

单词边界将匹配任何直接在单词之前或之后(即与单词字符相邻)的非单词字符。在javascript中,单词字符是任何字母数字和下划线( mdn ),非单词显然是其他一切!单词边界的技巧是它们是 zero width assertions ,这意味着它们不算作一个字符。这就是为什么/\w\b\w/永远不会匹配的原因,因为两个单词字符之间永远不可能有单词边界。

非单词边界

与单词边界相反,它不会匹配从非单词到单词或单词到非单词(即单词的结尾)的点,而是匹配在相同类型之间移动的点特点。因此,对于我们的示例,/\B../ 将匹配字符串中位于相同类型的两个字符之间的第一个点和接下来的两个字符,在这种情况下,它位于第一个 'n' 之间和'o',接下来的两个字符是“oo”。在第二个例子 /y\B./ 中,我们正在寻找字符 'y' 后跟一个匹配类型的字符(因此是一个单词字符),然后是 '.'将匹配第二个字符。所以“possibly yesterday”不会匹配“possibly”末尾的“y”,因为下一个字符是空格,它不是单词,但它会匹配“yesterday”开头的“y” ,因为它后面跟着一个单词字符,然后由“.”包含在匹配项中。在正则表达式中。

总的来说,正则表达式在许多语言中都很流行,并且基于可靠的理论基础,因此有很多关于这些字符的 Material 。通常,Javascript 与 Perl 的 PCRE 正则表达式 ( but not exactly the same! ) 非常相似,因此您关于 javascript 正则表达式的大部分问题都可以通过任何 PCRE 正则表达式教程(其中有很多)得到解答。

希望对您有所帮助!

关于javascript - javascript正则表达式(x)、小数点、分界的例子和解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16433361/

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