[英]regular expression whole word pattern
我對正則表達式非常陌生。 我的字符串如下所示:
"6 years, 10 months, 1 days, 23 hours, 15 seconds"
基本上,我希望匹配時間和單詞的每個部分,因此javascripts string.match的結果數組如下所示:
[0] = "6 years"
[1] = "10 months"
[2] = "1 days"
[3] = "23 hours"
[4] = "15 seconds"
這是我嘗試過的
/(\d{0,}\s(years|months|hours|days|seconds))/
但是這個正則表達式測試器顯示我在反向引用中也捕獲了每個單詞http://rubular.com/r/qkyFJrBCq8
/(\d{0,}\s\w*)\,{0}/
當我嘗試匹配逗號時,它遍地都是。 http://rubular.com/r/PXoPHVibH0
我不確定該怎么做,我在匹配整個單詞模式時所讀的解釋也不是很清楚。
一如既往,謝謝大家!
您可以將split與更簡單的正則表達式用於定界符:
var str = '6 years, 10 months, 1 days, 23 hours, 15 seconds';
var result = str.split(/,\s*/g);
,\\s*
正則表達式僅匹配逗號,后跟任意數量的空格。
Paulpro的答案似乎是這里最好的答案,但是不帶括號的括號 (?:
也應該對您有用:
/(\d+\s(?:years|months|hours|days|seconds))/
您如何使用split
功能?
對於正則表達式,您可以簡單地使用以下模式:
/[0-9]+\s*[a-z]/i
如果您確實想匹配您擁有的模式,則正則表達式的主要問題是括號的放置方式。 此模式將匹配單個數字單位組合:
/(\d+\s((years)|(months)|(hours)|(days)|(seconds)))/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.