[英]Regex match the words from a string without the start and end space
我试图匹配字符串中的一些单词,但没有成功。
比方说,我有这个字符串:
"word , word , two words, word"
我想要做的是匹配单词,但没有开始或结束的空间。 但它应该接受单词之间的空格。 匹配产生的数组应该是:
["word","word","two words","word"]
有人可以帮助或给我一些见解,我将如何做到这一点?
谢谢
编辑:我尝试过并取得成功的是分两部分:
match(/[^(,)]+/g)
并使用map从结果数组中删除所有空格:
map(value => value.trim());
但是只想通过正则表达式来做,并且不知道该怎么做。
\w[\w ]*?(?:(?=\s*,)|$)
说明:
\w[\w ]*?
匹配中间有0个或更多空格的单词字符,但从不在开头。 (懒)
(?:(?=\s*,)|$)
这种非捕获组期待未来的空间之后,
或字符串的结尾。
您可以在逗号上拆分,并在两侧包含可选空格:
var str = "word , , word , two words, word"; var arr = str.split(/(?:\\s*,\\s*)+/); console.log(arr); //=> ["word", "word", "two words", "word"]
您可以应用以下正则表达式:
(\w+\s*\w+)
匹配
这可能是您正在寻找的捕获组,因此迭代\\ 1
\s*([\w\s]+)\s*
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.