Twitter 用户名的正则表达式
RegEx for twitter usernames
我需要一些有关正则表达式的帮助,以了解以“@”开头并遵循以下规则的用户名:
用户名仅包含 \w 符号。
如果字符串有除“@”以外的任何非单词字符则匹配,例如
- 在
@username!&?()*^
中匹配@username
- 但不匹配
@username@username
、@username!@username
或
@username!%^@
(如果字符串至少还有一个“@”)。
如果字符串在“@”之前有任何符号,则不匹配,例如
- 不匹配
not@username
或 !@username
中的@username。
现在我有:
(?<!\w)@(\w{4,15})\b(?!@)
仅排除前面的 \w 符号和“@”(如果它仅位于用户名之后)。
您可以在左侧断言空白边界,并在右侧断言非@。
(?<!\S)@(\w{4,15})\b(?![^@\n]*@)
说明
(?<!\S)
断言左侧空白边界
@
字面匹配
(\w{4,15})\b
捕获 4-15 个单词字符后跟单词边界
(?![^@\n]*@)
断言除 @ 或右侧的换行符外的任何字符的可选重复,后跟 @
我需要一些有关正则表达式的帮助,以了解以“@”开头并遵循以下规则的用户名:
用户名仅包含 \w 符号。
如果字符串有除“@”以外的任何非单词字符则匹配,例如
- 在
@username!&?()*^
中匹配@username
- 但不匹配
@username@username
、@username!@username
或@username!%^@
(如果字符串至少还有一个“@”)。
- 在
如果字符串在“@”之前有任何符号,则不匹配,例如
- 不匹配
not@username
或!@username
中的@username。
- 不匹配
现在我有:
(?<!\w)@(\w{4,15})\b(?!@)
仅排除前面的 \w 符号和“@”(如果它仅位于用户名之后)。
您可以在左侧断言空白边界,并在右侧断言非@。
(?<!\S)@(\w{4,15})\b(?![^@\n]*@)
说明
(?<!\S)
断言左侧空白边界@
字面匹配(\w{4,15})\b
捕获 4-15 个单词字符后跟单词边界(?![^@\n]*@)
断言除 @ 或右侧的换行符外的任何字符的可选重复,后跟 @