鍍金池/ 問答/Java  網(wǎng)絡(luò)安全  HTML/ 空字符串作為正則表達式,匹配什么?

空字符串作為正則表達式,匹配什么?

空字符串作為正則表達式,匹配什么?

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源碼,確切說沒有精準(zhǔn)的點,解釋這個現(xiàn)象? 我也查了一些正則資料,
沒有找到說明。 目前,準(zhǔn)備看精通正則表達式, 找尋答案。 但是,希望能夠快點知道為什么? 特來求助大家。

回答
編輯回答
任她鬧

s 匹配任何空白字符,包括空格、制表符、換頁符等等。等價于[ fnrtv]。注意Unicode正則表達式會匹配全角空格符。
維基百科——正則表達式

2017年4月1日 05:36
編輯回答
孤影

split()方法是把字符串切分為數(shù)組,這里的切分原則是按''分割,所以會把你的每個單詞都變?yōu)閿?shù)組的單個元素。

2018年2月4日 02:28
編輯回答
莫小染

其實這個和正則沒什么關(guān)系,因為空字符串不是正則。

實際上按split的定義來說,使用指定的分隔符字符串將一個String對象分割成字符串?dāng)?shù)組。實際上對于空字符串這種比較特殊的分割符,只能根據(jù)輸出結(jié)果來猜測官方是如何定義的。

下面是我個人看法,不一定正確。

比如"ABCD"這個字符串,其實可以定義為"A"+""+"B"+""+"C"+""+"D",那么對于匹配到的分割符而言,就相當(dāng)于把每一個character都分割出來。

當(dāng)然,也可能只是約定俗成。(最近上不了外國網(wǎng)站,遲點能上再找一下ECMA的定義看看

2018年1月25日 08:30
編輯回答
貓小柒

這個問題有點迷哈,mdn上string.prototype.split方法介紹,可以說你寫的不是根據(jù)正則來分割,而是字符串,正則不需要使用'&"這樣的符號包圍,使用/regexp/格式就好,在正則中空格還是匹配空格,也可以使用\s來匹配。JavaScript的api以及相關(guān)文檔都應(yīng)該查看mdn,里面很全的,
W3C也是可以的。但是mdn比較友好。

2017年9月27日 05:49
編輯回答
孤酒

這道題和正則表達式?jīng)]什么關(guān)系。

split 是把字符串分割成數(shù)組,參數(shù)是分割符。

split(""),即""(空字符串)作為分割符。
split(","),即,逗號作為分割符。

2017年5月18日 11:41