儘管我可以,但無法弄清楚如何在JavaScript中使用正則表達式來獲取一組單詞(假設所有單詞都是大寫的)。例如:在JavaScript中使用正則表達式來返回一個單詞陣列
鑑於此:NowIsAGoodTime
如何使用正則表達式來獲得: '現在', '是', 'A', '好', '時間']
感謝非常許多!!
儘管我可以,但無法弄清楚如何在JavaScript中使用正則表達式來獲取一組單詞(假設所有單詞都是大寫的)。例如:在JavaScript中使用正則表達式來返回一個單詞陣列
鑑於此:NowIsAGoodTime
如何使用正則表達式來獲得: '現在', '是', 'A', '好', '時間']
感謝非常許多!!
'NowIsAGoodTime'.match(/[A-Z][a-z]*/g)
[A-Z]
,[a-z]
和[0-9]
是被定義爲範圍的字符集。例如,它們可能是[b-xï]
(從「b」到「x」加「ï」)。
String.prototype.match
總是返回數組或null
,如果完全不匹配的話。
最後,g
regexp標誌代表「全局匹配」。這意味着,它會嘗試在隨後的字符串部分匹配相同的模式。默認情況下(沒有g
標誌),它會滿足第一場比賽。
使用全局匹配的正則表達式,match
返回一個匹配子串的數組。
使用單個匹配正則表達式,它將返回與整個模式匹配的子字符串,然後是模式組匹配。 E.克:
'Hello'.match(/el(lo)/) // [ 'ello', 'lo' ]
See more上Regexp
。
此正則表達式將打破它在所需的部位:
([A-Z][a-z]*)
完美!這工作很棒!我可以問一下,如果可能的話,我可以如何在結果中包含4位數字(如單詞)。例如2011NowIsAGoodTime - > ['2011','現在','是','A','好','時間']。我可以很容易地做到這一點,沒有正則表達式(但當然,正則表達式更優雅:-))再次感謝原始問題的解決方案;我理解它,它完美地工作。順便說一句,對我來說,可選的4位數字,如果存在,將始終在字符串的開頭。 – user815460
歡迎您,也感謝@Marcus。 '/([0-9] {4} | [A-Z] [a-z] *)/ g'應包含4位數字。 – katspaugh
再次感謝您的幫助。哇。這很棒。讓我試着解釋它對自己和其他可能需要解釋的人是如何工作的。如果我錯了,請糾正我:可以匹配4個數字或以A-Z開頭的單詞,後跟任意數量的a-z; *僅適用於[a-z]。在()中包含整個表達式是導致返回數組的原因,並且最後的g使它可以工作,但我不知道爲什麼。 – user815460