我正在努力想出一个与Twitter主题标签相匹配的正则表达式。 Twitter主题标签具有以下规则:
1)它们不能包含空格,
2)它们不能包含标点符号
3)他们不能以数字开头或仅使用数字。
这是我到目前为止所提出的问题,但它仍然存在空格和标点字符问题:
"#{1}[^0-9]*[^[::punct::]\\s]*?[A-z0-9]*?"
感谢任何帮助。谢谢!
答案 0 :(得分:-1)
你的正则表达式看起来有点复杂,你只需要匹配#
然后是一个字母,然后是字母数字字符。
您也不需要为单个字符量词。这应该有效:
#[a-zA-Z]\w*
如果您不允许下划线(它们是推文中的合法字符),请改用:
#[a-zA-Z][\da-zA-Z]*
看起来标签的真实规格却是下划线和数字在任何地方都有效,只要它们至少是一个字母。
所以这会更好:
#\w*[a-zA-Z]\w*
答案 1 :(得分:-1)
此正则表达式仅捕获有效的主题标签:
(#[a-zA-Z]+[\w]?)(?:\s|$)