Javascript 使用regex从复杂字符串中提取hashtag
我有一根疯狂的绳子,比如:Javascript 使用regex从复杂字符串中提取hashtag,javascript,regex,string,hashtag,Javascript,Regex,String,Hashtag,我有一根疯狂的绳子,比如: sun #plants #!wood% ##arebaba#tey travel#blessed #weed das#$#F!@D!AAAA 我想提取所有以#开头或前面有空格的“单词”(也包含特殊字符),结果如下: [ 'sun', 'plants', '!wood%', 'arebaba', 'tey', 'travel', 'blessed', 'weed', 'das', '$', 'F!@D!AAAA'
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#祝福##weed das##$#F@DAAAA';
var arr=str.match(/[^\s#]+/g);
控制台日志(arr)代码>仅使用match,就可以将所有组1匹配项放入一个数组中
(?:^ |[#]+)([^#]+)(?=[#][124;$)
轻松点
(?: ^ | [ #]+ )
( [^ #]+ ) # (1)
(?= [ #] | $ )
或者,如果您觉得它这么简单,那么只需使用([^#]+)
或[^#]+
它得到的是相同的东西(如反向拆分)。只有一个问题,如果字符串只是空格,则匹配空格,如“”。应该返回一个空数组[]。您能否澄清一下,这与您的问题标题<代码>使用regex从复杂字符串中提取hashtags有什么关系?例如,如果用户只在输入中键入一些空格,并且我匹配他使用regex键入的hashtags,它将不会返回空数组,因为用户没有键入任何hashtag。在这种情况下,应该返回[].@IbnClaudius-如果需要一个hashtag或空格来验证输入,只需提前测试它的[\\\][^\\\][^\\\][^\\\][\\\\]
,然后使用[^\\\]+
获取数组