我知道正则表达式,你可以得到每一个字和第一个字母:
/\b(\w)/g,
但是还有一种方法可以得到第一个字吗?(我尝试了很多谷歌搜索,但无法找到任何两个而不是第一个或最后一个字) 我认为应该可以同时使用1个正则表达式而不是2个不同的正则表达式。
我的字符串和想要结果的示例?
字符串:Hello Mister world
会回馈:[' H',' w']
答案 0 :(得分:1)
^\w|\b\w(?=\S+$)
试试这个。看看演示。
https://regex101.com/r/fA6wE2/31
编辑:
^\s*(\w)|\b(\w)(?=\S+$)
使用此选项并抓取组或捕获开始时是否有空格。
答案 1 :(得分:0)
虽然它只处理相当具体的输入,但你应该可以使用类似的东西:
var test = [
"Get the first and last word",
"Hello world!",
"foo bar",
"this is a test, for matches",
"test"
];
var rex = /^((\w*)\s?).*?(\s?(\w*)[^\w\s]*)$/;
test.forEach(function(it) {
document.getElementById("results").textContent += JSON.stringify(rex.exec(it)) + "\n";
});

<pre id="results"></pre>
&#13;
匹配2和4将为您提供第一个和最后一个单词的修剪版本。
细分,正则表达式/^((\w*)\s?).*?(\s?(\w*)[^\w\s]*)$/
:
答案 2 :(得分:0)
^(\w).*\b(\w).*?$
会为您提供您正在寻找的东西。 regex101