[英]Match all text before a number in string and after a number in string in javascript
输入文本:
Mazzei, Toscana, sangiovese, merlot 2400
Papale, Puglia, primitive 2600
Antinori, Toscana, sangiovese, cabernet, sauvignon, merlot, syrah 2950
所需的输出(末尾没有空格):
Mazzei, Toscana, sangiovese, merlot
Papale, Puglia, primitive
Antinori, Toscana, sangiovese, cabernet, sauvignon, merlot, syrah
我也想不通:
输入文本:
Mazzei 2400 Toscana, sangiovese, merlot
Papale 2600 Puglia, primitive
Antinori Toscana, sangiovese 2950 cabernet, sauvignon, merlot, syrah
所需的输出(末尾没有空格):
Toscana, sangiovese, merlot
Puglia, primitive
cabernet, sauvignon, merlot, syrah
谢谢。
您可以使用replace
和regexp从字符串中删除数字,也许您希望清理文本,例如删除多余的空格等。
console.log( "Antinori Toscana, sangiovese 2950 cabernet, sauvignon, merlot, syrah" .replace(/\\d*/g, "") // remove numbers .replace(/\\s+/g, " ") // convert double space to single one .trim() // remove space around the string );
您可以使用拆分功能。
const input = `Mazzei 2400 Toscana, sangiovese, merlot Papale 2600 Puglia, primitive Antinori Toscana, sangiovese 2950 cabernet, sauvignon, merlot, syrah`; input.split(/\\n/).forEach((line) => { const result = line.split(/[0-9]+/); console.log('Result:', result[1]); });
我认为,您需要两个正则表达式来解决此问题:此正则表达式可以解决您的第一个问题:
.+(?= \d+)
它匹配任何一个或多个字符,后跟一个空格和一个或多个数字。
您的第二个问题可以通过此正则表达式解决:
(?<=\d+ ).+
它与一个或多个任何具有数字和空格的字符相匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.