簡體   English   中英

正則表達式匹配沒有開始和結束空格的字符串中的單詞

[英]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+)

匹配

  • 一個或多個單詞字符后跟
  • 0到N個白色字符(空格字符:空格,制表符,換行符,回車符,垂直制表符)后跟
  • 1個或多個單詞字符。

http://www.rexegg.com/regex-quickstart.html

這可能是您正在尋找的捕獲組,因此迭代\\ 1

\s*([\w\s]+)\s*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM