仅根据主角

时间:2017-08-31 15:31:07

标签: ruby-on-rails ruby regex

在Rails中,对于作为主题标签的字符串,我想测试它是否有效(仅限字母数字和下划线)。但我事先并不知道第一个字符是#

我可以测试一下:

if (string.first == '#')
  string.match(/^[#][\w]+$/)
else 
  string.match(/^[\w]+$/)

我如何制作正则表达式来进行匹配,但如果它是主角,则只允许#字符?

1 个答案:

答案 0 :(得分:2)

正则表达式中有?个量词,表示zero or one occurrence。因此,您的正则表达式转换为:

string.match(/^#?\w+$/)