H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【Web前端问题】空字符串作为正则表达式,匹配什么?

空字符串作为正则表达式,匹配什么?

ls = makeList(" AB CDEFG HIJKLMNOPQRSTUVWXYZ".split(""));
System.out.println(ls);

输出:
[ , A, B, , C, D, E, F, G, , H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]

为什么感觉空字符串作为正则表达式的模式,是匹配一个位置的? 我看了jdk源码,确切说没有精准的点,解释这个现象? 我也查了一些正则资料,
没有找到说明。 目前,准备看精通正则表达式, 找寻答案。 但是,希望能够快点知道为什么? 特来求助大家。

回答:

其实这个和正则没什么关系,因为空字符串不是正则。

实际上按split的定义来说,使用指定的分隔符字符串将一个String对象分割成字符串数组。实际上对于空字符串这种比较特殊的分割符,只能根据输出结果来猜测官方是如何定义的。

下面是我个人看法,不一定正确。

比如”ABCD”这个字符串,其实可以定义为”A”+””+”B”+””+”C”+””+”D”,那么对于匹配到的分割符而言,就相当于把每一个character都分割出来。

当然,也可能只是约定俗成。(最近上不了外国网站,迟点能上再找一下ECMA的定义看看

回答:

这个问题有点迷哈,mdn上string.prototype.split方法介绍,可以说你写的不是根据正则来分割,而是字符串,正则不需要使用'&"这样的符号包围,使用/regexp/格式就好,在正则中空格还是匹配空格,也可以使用\s来匹配。JavaScript的api以及相关文档都应该查看mdn,里面很全的,
W3C也是可以的。但是mdn比较友好。

回答:

这道题和正则表达式没什么关系。

split 是把字符串分割成数组,参数是分割符。

split(””),即""(空字符串)作为分割符。
split(“,”),即,逗号作为分割符。

回答:

s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ fnrtv]。注意Unicode正则表达式会匹配全角空格符。
维基百科——正则表达式

回答:

split()方法是把字符串切分为数组,这里的切分原则是按”分割,所以会把你的每个单词都变为数组的单个元素。

本文地址:H5W3 » 【Web前端问题】空字符串作为正则表达式,匹配什么?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址