股票符号验证的正则表达式(如goog、qqq、ibm、c等)


Regular expression for stock symbol validation (like goog, qqq, ibm, c etc.)

我使用下面的表达式来检查股票符号是否有效

$s_optionPattern = "/^[a-z0-9]{1,6}'s+(?:c|call|p|put)'s+[0-9'.]+'s+[0-9]{4}[0-9]{2}[0-9]{2}$/i";
$s_symbol   =   "TQNT CALL 6 20120519";
$s_symbol2  =   "BRK'B CALL 80 20120317";
echo "<br>--->".preg_match($s_optionPattern, $s_symbol);
echo "<br>--->".preg_match($s_optionPattern, $s_symbol2);

这里,第二个符号为false(0),第一个符号为true。

如果我按以下方式编辑正则表达式,它正确吗。

$s_optionPattern = "/^[a-z0-9']{1,6}'s+(?:c|call|p|put)'s+[0-9'.]+'s+[0-9]{4}[0-9]{2}[0-9]{2}$/i";

但我不确定它是否正确。有谁能帮我解决这个问题吗?

这里有些股票符号有(点,')字符,也像BRK.B,BRK'B。

试试这个

    $pattern='/[a-zA-Z.]+/';
    $s_symbol   ='TQNT';
    $s_symbol2  =   "BRK.B";
    preg_match_all($pattern,$s_symbol,$matches1);
    print_r($matches1[0]);
    preg_match_all($pattern,$s_symbol2,$matches2);
    print_r($matches2[0]);