我有一个疯狂的字符串,如:
sun #plants #!wood% ##arebaba#tey travel#blessed #weed das#$#F!@D!AAAA
我想提取所有"单词" (也包含特殊字符)以#开头或之前有空格,结果如下:
[
'sun',
'plants',
'!wood%',
'arebaba',
'tey',
'travel',
'blessed',
'weed',
'das',
'$',
'F!@D!AAAA'
]
如何使用正则表达式获取此内容?
答案 0 :(得分:3)
您可以使用正则表达式match
使用[^#\s]+
:
var str = 'sun #plants #!wood% ##arebaba#tey travel#blessed #weed das#$#F!@D!AAAA';
var arr = str.match(/[^\s#]+/g);
console.log(arr);

答案 1 :(得分:0)
只需使用匹配就可以将所有第1组匹配变为数组。
(?:^|[ #]+)([^ #]+)(?=[ #]|$)
轻松!
(?: ^ | [ #]+ )
( [^ #]+ ) # (1)
(?= [ #] | $ )
或者,如果您觉得这很简单,那么只需使用([^ #]+)
或[^ #]+
得到同样的东西(比如拆分反过来)。