[英]split “getElementById” into multiple stings based on a character in Javascript?
[英]Split stings using REGEX in javascript
我正在嘗試將字符串解析為5部分。 例如:
var str1 = '#<SYSTEM list-of / asdf-finalizers-20140826-git / quicklisp 2014-08-26>'
// filter is used to remove empty strings from the returned array
str1.split(/[ #<>/]/).filter(function(n) { return n !== ''; });
// str1[0] -> SYSTEM
// str1[1] -> list-of
// str1[2] -> asdf-finalizers-20140826-git
// str2[3] -> quicklisp
// str2[3] -> 2014-08-26
但是問題是,我無法解析單詞中間包含斜杠的字符串,例如,
#<SYSTEM asdf-finalizers-test/1 / asdf-finalizers-20140826-git / quicklisp 2014-08-26>
解析單詞asdf-finalizers-test/1
的正確正則表達式是什么? 我嘗試了這些但是失敗了。
/[(\\s\\/\\s) #<>]/
, /[(?:\\s\\/\\s) #<>]/
, /[ #<>]|(\\s\\/\\s)/
以下似乎有效:
/ \/ |[ #<>]/
'#<SYSTEM asdf-finalizers-test/1 / asdf-finalizers-20140826-git / quicklisp 2014-08-26>'.split(/ \/ |[ #<>]/).filter(Boolean)
> [ 'SYSTEM',
'asdf-finalizers-test/1',
'asdf-finalizers-20140826-git',
'quicklisp',
'2014-08-26' ]
您可以使用否定的前瞻,以使其在后面跟有單詞字符時不根據/
進行拆分。
> var s = "#<SYSTEM asdf-finalizers-test/1 / asdf-finalizers-20140826-git / quicklisp 2014-08-26>"
> s.split(/[ #<>]|\/(?!\w)/).filter(function(n) { return n !== ''; });
[ 'SYSTEM',
'asdf-finalizers-test/1',
'asdf-finalizers-20140826-git',
'quicklisp',
'2014-08-26' ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.