Eu tenho uma string:
const str = `abcde 9'2" abcde 8' abcde 7' 11" abcde`
Estou tentando extrair estes valores:
[ "9'2", "8'", "7' 11" ]
Quero usar grupos regex para conseguir isso (meu código real é muito mais complexo e grupos regex simplificarão as coisas), mas meu regex não está funcionando bem. Como posso fazer com que todos os três testes retornem verdadeiros no trecho de código abaixo?
const str = `abcde 9'2" abcde 8' abcde 7' 11" abcde`
const regex = /(\d+' ?\d+)"/g
const matches = [...str.matchAll(regex)]
const actual = matches.map(x => x[1])
const expected = [ "9'2", "8'", "7' 11" ]
console.log(actual) // [ "9'2", "7' 11" ]
// tests
console.log(actual[0] === expected[0]) // true
console.log(actual[1] === expected[1]) // false
console.log(actual[2] === expected[2]) // false
Você pode usar este padrão:
Com a ajuda de @user24714692 encontrei mais algumas variações que também funcionam!