第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

php 轉(zhuǎn)化smiles為分子式

標(biāo)簽:
PHP

近来在使用PHP进行结构式搜索的时候,发现获取到smiles无法进行查询操作,然后想到了转化为分子式的操作。主要是用在有机物。


困难一:我在smiles 上利用正则匹配C,O。遇到了问题就是其他元素也有C字母,所以无法正确去掉C


解决:我只用原来的smiles来分析有机物的组成,然后我按照有机物的结构,单独找出来C,O的数量,其余元素,简单统计一下放在后面就好了。主要分为三部分,C数目,O数目,其他元素


实现;1.前台获取的smiles,符合相应的规则

    2.php处理

    


                                        $Cnum='';                    $Onum='';                    //print($smiles."原来的");                    $find=array("=","#",".","1","[","]","(",")");                    $replace = array("");                    $smiles=str_replace($find,$replace,$smiles,$j);                    //print($j);                    //ECHO '/n';                    $ChemElement= array("Li","Be","Na","Mg","Al","Si","Cl","Br","Ca","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Gc","Ag","Au");                    foreach($ChemElement as $value){                        //print($value);                        $k_x=substr_count($smiles,$value);                        if($k_x>0){                            $k_x=$k_x==1?'':$k_x;                            //str_replace($value,'',$smiles);                            $smiles_new.=$value.$k_x;                        }                    }                    $k_c=substr_count($smiles,'C');                    //print('C个数'.$k_c);                    $i_c=preg_match_all('/C[a-z]/m',$smiles);                    //print('非碳个数'.$i_c);                    $j_c=$k_c-$i_c;                    //print_r('碳个数'.$j_c);                    //$smiles=preg_replace('/C[0-9A-Z/.]/m','',$smiles,-1,$count);                    //print($smiles);                    //print('替换次数'.$count);                    $k_o=substr_count($smiles,'O');                    //print('O个数'.$k_o);                    $i_o=preg_match_all('/O[a-z]/m',$smiles);                    //print('非氧个数'.$i_o);                    $j_o=$k_o-$i_o;                    //$smiles=preg_replace('/C[0-9A-Z/.]/m','',$smiles,-1,$count);                    //print($smiles);                    //print('替换次数'.$count);                    if($j_c>0){$j_c=$j_c==1?'':$j_c;$Cnum='C'.$j_c;}                    if($j_o>0){$j_o=$j_o==1?'':$j_o;$Onum='O'.$j_o;}                    $smilesPara = $Cnum.$Onum.$smiles_new;                                           结果:基本上可以解决一般意义上的分子式,当然元素我没有写全,我认为常用的写一下就好,本来就是为了搜索,不常见的物质,化学品库里也没有。 这里推荐一下 斯芬克斯的PHP搜索引擎,很不错。


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消