鑑於字符串如:隔離子字符串非貪婪?
foo/**hello**/baré
foo/crazy/**hello**/baré
**hello**/crazy/baré
對於每一線,如何通過一個JS隔離hello
(在**
之間的文本)?(?正則表達式搜索)
(輸出通緝的每一行是hello
)
到目前爲止,我失敗有:.*?\*\*(.*?)\*\*.*?
=>$1
給我:
hello/baré
hello/baré
hello/crazy/baré
鑑於字符串如:隔離子字符串非貪婪?
foo/**hello**/baré
foo/crazy/**hello**/baré
**hello**/crazy/baré
對於每一線,如何通過一個JS隔離hello
(在**
之間的文本)?(?正則表達式搜索)
(輸出通緝的每一行是hello
)
到目前爲止,我失敗有:.*?\*\*(.*?)\*\*.*?
=>$1
給我:
hello/baré
hello/baré
hello/crazy/baré
你可以使用與除*以外的任何字符匹配的表達式:
const inputs = [
'foo/**hello**/baré',
'foo/crazy/**hello**/baré',
'**hello**/crazy/baré'
];
inputs.forEach(input => {
const matches = input.match(/.*\*\*([^*]+)\*\*.*/);
console.log(matches[1]);
});
您是否使用replace來獲取輸出?然後最後的'。*?'必須是貪婪的以匹配字符串的末尾。如果你使用匹配你的正則表達式,它應該工作正常。 –