我有一个字符串:
const str = `abcde 9'2" abcde 8' abcde 7' 11" abcde`
我正在尝试提取这些值:
[ "9'2", "8'", "7' 11" ]
我想使用正则表达式组来实现这一点(我的实际代码要复杂得多,而正则表达式组会简化事情),但我的正则表达式不太管用。如何才能让下面代码片段中的所有 3 个测试都返回 true?
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
您可以使用这种模式:
在@user24714692 的帮助下,我又发现了一些同样有效的变体!