2017-08-27 31 views
1

我目前使用下面的模式@用戶:提起用Linkify和正則表達式

Pattern mentionPattern = Pattern.compile("@([A-Za-z0-9_]+)");

這將找到一個名爲@user例如用戶,但它不會找到@user.(與尾點)或@user!hello。我想基本上捕捉所有內容,直到第一個空格。我可以使用什麼模式來查找這些類型的用戶名?

+0

這很混亂,因爲你的模式已經有效。 https://regex101.com/r/qgOTKF/1。什麼不起作用? – linden2015

+0

我的意思是我想要找到''user'''和''user.123''例如,即包含在點之後但在新的白色空間之前的尾部點和字符。 – santafebound

+0

您在另一條評論中提到的模式'@([\\ S + A-Za-z0-9 _] +)不會捕獲「@ user.123」。對?你是否想要捕獲任何不包含空白區域的組合?還有'@ user1 @ user2'作爲一個用戶? 如果您添加示例和預期結果的列表,它會有所幫助。 – linden2015

回答

3

@(\S+)將捕獲到第一個空白爲止的所有內容。

編輯以供將來參考:

Pattern.compile("@([\\S+A-Za-z0-9_]+)");是實際的答案,如果你想只捕捉user,以上的例子已抓獲user!hello

+0

你是指''Pattern.compile(「@([\\ S + A-Za-z0-9 _] +)」);''這對我有用。謝謝! – santafebound

+0

是的,對不起,我誤解了捕獲'user!hello'而不是'user'的問題。 – LW001