?表示匹配0次或1次,同时?是贪婪量词,会优先匹配1次。
如 模式 /(fred)?A/用于匹配字符串"CfredA"时匹配的结果是 “fredA”。
但需要注意如果用模式/(fred)?/去匹配字符串"CfredA",匹配到的结果为"",即空字符串。这是因为在字符串开始的地方匹配到了0次(fred),此时已经满足匹配条件了。在不使用/g选项的情况下,匹配到第一次就算匹配完成了,即使是贪婪量词也不会去匹配字符串里最长的,而是匹配第一次匹配到的。
?表示匹配0次或1次,同时?是贪婪量词,会优先匹配1次。
如 模式 /(fred)?A/用于匹配字符串"CfredA"时匹配的结果是 “fredA”。
但需要注意如果用模式/(fred)?/去匹配字符串"CfredA",匹配到的结果为"",即空字符串。这是因为在字符串开始的地方匹配到了0次(fred),此时已经满足匹配条件了。在不使用/g选项的情况下,匹配到第一次就算匹配完成了,即使是贪婪量词也不会去匹配字符串里最长的,而是匹配第一次匹配到的。