Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.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
Regex 正则表达式不匹配模式,后跟字符串中的水平省略号_Regex_R - Fatal编程技术网

Regex 正则表达式不匹配模式,后跟字符串中的水平省略号

Regex 正则表达式不匹配模式,后跟字符串中的水平省略号,regex,r,Regex,R,我正在尝试使用R中的正则表达式,使用“stringr”包中的str\u match\u all从文本中提取Twitter标签 问题是,有时哈希标记会被截断,并在文本字符串的末尾附加一个水平省略号,如本例所示: str_match_all("hello #goodbye #au…","#[[:alnum:]_+]*[^…]")[[1]] 我可以使用上面的代码成功地提取一个hashtag列表,但我想排除被截断的hashtag(即具有水平省略号的hashtag) 这是令人沮丧的,因为我到处寻找解决方

我正在尝试使用R中的正则表达式,使用“stringr”包中的
str\u match\u all
从文本中提取Twitter标签

问题是,有时哈希标记会被截断,并在文本字符串的末尾附加一个水平省略号,如本例所示:

str_match_all("hello #goodbye #au…","#[[:alnum:]_+]*[^…]")[[1]]
我可以使用上面的代码成功地提取一个hashtag列表,但我想排除被截断的hashtag(即具有水平省略号的hashtag)

这是令人沮丧的,因为我到处寻找解决方案,上面的代码是我能想到的最好的,但显然不起作用


非常感谢您的帮助。

我建议将
regmatches
regexpr
[^#]+(?!…)\\b
Perl风格的正则表达式一起使用:

x <- "#hashtag1 notHashtag #hashtag2 notHashtag #has…"
m <- gregexpr('#[^#\\s]+(?!…)\\b', x, perl=T)
// or m <- gregexpr('#\\w+(?!…)\\b', x, perl=T)
// or m <- gregexpr('#\\S+(?!…)\\b', x, perl=T)
regmatches(x, m)

x@Pascal我的道歉-这是“stringr”package@stribizhev我在OP的outputHi@Stribizev中得到了两个子串,谢谢,这是正确的。然而,当我尝试这个:
x时,我已经编辑了答案。我们需要使用更精确的求反字符类
[^#\\s]
,或者切换到只允许
[a-zA-Z0-9]
\\w
。或者甚至允许任何内容,除了空白:。谢谢!我可以确认答案是完美的,并提供了几个微调选项,因此我非常感谢。非常感谢。