summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/regexes/regexes.go4
-rw-r--r--internal/util/statustools_test.go9
2 files changed, 9 insertions, 4 deletions
diff --git a/internal/regexes/regexes.go b/internal/regexes/regexes.go
index 58635b6b4..dd3d9ce40 100644
--- a/internal/regexes/regexes.go
+++ b/internal/regexes/regexes.go
@@ -71,8 +71,8 @@ var (
// MentionFinder extracts mentions from a piece of text.
MentionFinder = regexp.MustCompile(mentionFinder)
- // hashtag regex can be played with here: https://regex101.com/r/bPxeca/1
- hashtagFinder = fmt.Sprintf(`(?:^|\s)(?:#*)(#[a-zA-Z0-9]{1,%d})(?:#|\b)`, maximumHashtagLength)
+ // hashtag regex can be played with here: https://regex101.com/r/bpyGlj/1
+ hashtagFinder = fmt.Sprintf(`(?:^|\s)(?:#*)(#[\p{L}\p{N}]{1,%d})(?:#|\b)`, maximumHashtagLength)
// HashtagFinder finds possible hashtags in a string.
// It returns just the string part of the hashtag, not the # symbol.
HashtagFinder = regexp.MustCompile(hashtagFinder)
diff --git a/internal/util/statustools_test.go b/internal/util/statustools_test.go
index bea89158a..d9f344e4b 100644
--- a/internal/util/statustools_test.go
+++ b/internal/util/statustools_test.go
@@ -83,15 +83,20 @@ func (suite *StatusTestSuite) TestDeriveHashtagsOK() {
#ThisShouldAlsoWork #not_this_though
-#111111 thisalsoshouldn'twork#### ##`
+#111111 thisalsoshouldn'twork#### ##
+
+#alimentación, #saúde
+`
tags := util.DeriveHashtagsFromText(statusText)
- assert.Len(suite.T(), tags, 5)
+ assert.Len(suite.T(), tags, 7)
assert.Equal(suite.T(), "testing123", tags[0])
assert.Equal(suite.T(), "also", tags[1])
assert.Equal(suite.T(), "thisshouldwork", tags[2])
assert.Equal(suite.T(), "ThisShouldAlsoWork", tags[3])
assert.Equal(suite.T(), "111111", tags[4])
+ assert.Equal(suite.T(), "alimentación", tags[5])
+ assert.Equal(suite.T(), "saúde", tags[6])
}
func (suite *StatusTestSuite) TestDeriveEmojiOK() {