我有一个疯狂的字符串,像这样:
sun #plants #!wood% ##arebaba#tey travel#blessed #weed das#$#F!@D!AAAA
我想提取所有以 # 开头或前面有空格的"单词"(也包含特殊字符(,结果如下:
[
'sun',
'plants',
'!wood%',
'arebaba',
'tey',
'travel',
'blessed',
'weed',
'das',
'$',
'F!@D!AAAA'
]
如何使用正则表达式获得此信息?
您可以使用正则表达式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);
正则表达式演示
只需使用 match,您就可以将所有组 1 匹配项放入一个数组中。
(?:^|[ #]+)([^ #]+)(?=[ #]|$)
容易!
(?: ^ | [ #]+ )
( [^ #]+ ) # (1)
(?= [ #] | $ )
或者,如果你觉得它很简单,那么只需使用([^ #]+)
或[^ #]+
它得到同样的东西(比如反向拆分(。