用于hashtags的Scala正则表达式
我是IT界的新手,我用谷歌搜索解决了大部分问题,但这次我没能成功,所以我决定寻求一些帮助,呵呵 我正在用scala编写代码,scala使用twitter选择流行的标签。 我成功地解决了将每个单词分开,然后只选择以#开头的单词的问题 因为twitter上有很多使用亚洲字母的标签,我只想选择那些使用英语字母和数字的标签。我尝试添加一些表达式变体,如:用于hashtags的Scala正则表达式,scala,apache-spark,spark-streaming,Scala,Apache Spark,Spark Streaming,我是IT界的新手,我用谷歌搜索解决了大部分问题,但这次我没能成功,所以我决定寻求一些帮助,呵呵 我正在用scala编写代码,scala使用twitter选择流行的标签。 我成功地解决了将每个单词分开,然后只选择以#开头的单词的问题 因为twitter上有很多使用亚洲字母的标签,我只想选择那些使用英语字母和数字的标签。我尝试添加一些表达式变体,如: val hashtags = tweetwords.filter(word => word.startsWith("#[^A-Za-z0-9]+
val hashtags = tweetwords.filter(word => word.startsWith("#[^A-Za-z0-9]+"))
但当我试图在之后打印它们时,它们不会显示。在正则表达式测试网站上,同样的表达式工作得非常好
我做错了什么?谢谢你的建议 不幸的是,
startsWith
不接受正则表达式,因此筛选器正在显式查找该正则表达式字符串。您需要像这样构造一个regex对象:
val hashtagFilter=“^#[A-Za-z0-9]+$”。r
然后,您可以使用此选项过滤推特文字:
val hashtags=tweetwords.filter(word=>hashtagFilter.findFirstIn(word.isDefined)
感谢您的帮助,从现在起,我一定会记住如何使用regex!
val hashtags = tweetwords.filter(word => word.startsWith("#[^A-Za-z0-9]+"))