[英]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.