string = 'Hello _1234_ world _4567_';
string.match(/(\d*)/gi);
//,,,,,,,1234,,,,,,,,,,4567,,
如果我更改regext以使\ d +具有合適的值:1234和4567.爲什麼在第一種情況下我得到所有這些空匹配。使用正則表達式時獲得空匹配 d *
string = 'Hello _1234_ world _4567_';
string.match(/(\d*)/gi);
//,,,,,,,1234,,,,,,,,,,4567,,
如果我更改regext以使\ d +具有合適的值:1234和4567.爲什麼在第一種情況下我得到所有這些空匹配。使用正則表達式時獲得空匹配 d *
*
表示0或更多。 +
表示1或更多。
\d*
匹配每個字符之間的空白空間,因爲這是空字符串,即零數字。當你使用\d+
時,空字符串不再是有效的匹配,所以你不會得到這些額外的匹配。
因爲你有(\ d *)這意味着每次有0或更多的數字時就會捕獲,這意味着每個字符(即使是一些不可見的字符,如換行符)都匹配 。
用\ d +,你說的匹配有一個或多個數字。