我正在尝试提取所有文本,直到出现第一个数字。假设我有这种 string "Paris 01 Louvre"
。我只想拥有"Paris"
或者如果我"Neuilly sur Seine 03 bla blab"
想提取"Neuilly sur Seine"
.
我在 javascript 中使用正则表达式苦苦挣扎,但找不到正确的公式。
我正在尝试提取所有文本,直到出现第一个数字。假设我有这种 string "Paris 01 Louvre"
。我只想拥有"Paris"
或者如果我"Neuilly sur Seine 03 bla blab"
想提取"Neuilly sur Seine"
.
我在 javascript 中使用正则表达式苦苦挣扎,但找不到正确的公式。
"Neuilly sur Seine 03 bla blab".match(/^\D+(?=\s)/);
// => Neuilly sur Seine
这个答案还确保不捕获尾随空格。
基本正则表达式:
var re = /^([^\d]+)\s/;
var str = "Neuilly sur Seine 03 bla blab";
console.log( str.match(re) );
^(.+?)\d
这会抓取第一个数字 ( \d
) 之前的所有内容。在这里玩正则表达式。
除了数字之外的任何内容:
^[^0-9]*
^
是行首[]
表示字符类^
字符类内部的意思是“反转这个类”0-9
是数字 0 到 9,所以[^0-9]
表示除 0 到 9 之外的任何字符*
是它所遵循的字符/类的“零个或多个”这会从字符串的开头抓取任何不是数字的东西。
s.match(/^\D*/)