用于匹配特定 HTML 实体模式(表情符号)的正则表达式

RegEx for matching specific HTML Entity pattern (Emoji)

我正在使用此正则表达式来精确匹配以下模式。问题是,如果超出,则不应考虑该模式:

我想要以 # 开头的 6 位数字,但如果我写 {5} returns true。然后同样的事情发生在 ;我只想要一个并且在最后。另外,我不知道如何在这里使用 $ 来指定最后一个字符。

 if(preg_match(('/^(#)+([0-9]{6}){1}(;)/'),"#128515;")){
     return true;
  }

应该采用这种格式:

#128515; for #DDDDDD; not ##DDDD;; 

恰好 6 位数字以 1 # 开头并以 1 ;

结尾

preg_match 将 return 1 当它匹配给定的主题时,如果你有 6 位数字,当没有结束分号时它也可以匹配 5,因为没有结束边界集。

您可以添加锚 ^$ 来断言字符串的开头和结尾,以便它恰好匹配 6 位数字。

您可以从您的模式中省略 {1},因为该组已匹配 1 次。 如果您不引用代码中的组,您也可以省略它们,只匹配一个。

您可以使用:

^#[0-9]{6};$
  • ^ 字符串开头
  • # 匹配 #
  • [0-9]{6};匹配6位数字
  • $ 断言字符串结束

您的代码可能看起来像

if(preg_match(('/^#[0-9]{6};$/'),"#128515;")){
    return true;
}