近來在使用PHP進(jìn)行結(jié)構(gòu)式搜索的時(shí)候,發(fā)現(xiàn)獲取到smiles無法進(jìn)行查詢操作,然后想到了轉(zhuǎn)化為分子式的操作。主要是用在有機(jī)物。
成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為眉山等服務(wù)建站,眉山等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為眉山企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。困難一:我在smiles 上利用正則匹配C,O。遇到了問題就是其他元素也有C字母,所以無法正確去掉C
解決:我只用原來的smiles來分析有機(jī)物的組成,然后我按照有機(jī)物的結(jié)構(gòu),單獨(dú)找出來C,O的數(shù)量,其余元素,簡單統(tǒng)計(jì)一下放在后面就好了。主要分為三部分,C數(shù)目,O數(shù)目,其他元素
實(shí)現(xiàn);1.前臺獲取的smiles,符合相應(yīng)的規(guī)則
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個(gè)數(shù)'.$k_c); $i_c=preg_match_all('/C[a-z]/m',$smiles); //print('非碳個(gè)數(shù)'.$i_c); $j_c=$k_c-$i_c; //print_r('碳個(gè)數(shù)'.$j_c); //$smiles=preg_replace('/C[0-9A-Z/.]/m','',$smiles,-1,$count); //print($smiles); //print('替換次數(shù)'.$count); $k_o=substr_count($smiles,'O'); //print('O個(gè)數(shù)'.$k_o); $i_o=preg_match_all('/O[a-z]/m',$smiles); //print('非氧個(gè)數(shù)'.$i_o); $j_o=$k_o-$i_o; //$smiles=preg_replace('/C[0-9A-Z/.]/m','',$smiles,-1,$count); //print($smiles); //print('替換次數(shù)'.$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; 結(jié)果:基本上可以解決一般意義上的分子式,當(dāng)然元素我沒有寫全,我認(rèn)為常用的寫一下就好,本來就是為了搜索,不常見的物質(zhì),化學(xué)品庫里也沒有。 這里推薦一下 斯芬克斯的PHP搜索引擎,很不錯(cuò)。另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。