Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用regex从复杂字符串中提取hashtag_Javascript_Regex_String_Hashtag - Fatal编程技术网

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或空格来验证输入,只需提前测试它的
[\\\][^\\\][^\\\][^\\\][\\\\]
,然后使用
[^\\\]+
获取数组