有一個很長的文字,看起來像這樣:我如何去通過長文本,並將其轉換成Insert語句對MySQL
1 E.M.史密斯,J.P.拉維尼,P. VIALLEFONT等J. DAUNIS。 Recherches ensérietriazépine-1,2,4。 J.Heterocyclic Chem。 12,66(1975)。
2- M. BENCHIDMI et E.M. ESSASSI。 合成雙雙三唑並[4,3-b:4,3-d]三氮雜-1,2,4。 J.Heterocyclic Chem。,13,885(1976)。
3- LAVERGNE et P. VIALLEFONT。 1,5肼基氮雜卓氮雜苯並二氮卓酮和氮雜苯並二氮-硫酮。 Tetrahedron,33,2807(1977)。
4- E.M. ESSASSI。 「Synthèseetétudede RMN1H enprésencede l'Eu(fod)3 des pyrazolo [1,5,4-ef]benzodiazépine-1,5 ones-6 Bull.Soc.Chim.Belg。,96,399( 1987)。
。 。 。 。
並在不斷超過300多,我需要提取每行並將其添加到插入查詢的MySQL中,刪除列表中的數字和逃避所有引號和雙引號,我雖然使用正則表達式,但事實證明對我來說很困難。
插入查詢應該看起來像:
INSERT INTO PUBLICATIONS (NAME,AUTHOR,CITE,PUB_YEAR) VALUES
("Recherches en série triazépine-1,2,4.", "E.M. Smith, J.P. LAVERGNE, P. VIALLEFONT et J. DAUNIS.","J. Heterocyclic Chem. 12, 66","1975"),
("Synthèse de bis s-triazolo [4,3-b : 4,3-d] triazépines-1,2,4.", "M. BENCHIDMI et E.M. ESSASSI.","J. Heterocyclic Chem., 13, 885","1976"),
etc.
我只是給了一些格式文本有一些想法,但它沒有空格或下一行,它都在一個巨大的字符串。
我還以爲是使用喜歡的事:
$string = "all my string"
$pattern = '/regex pattern/';
$replacement = 'result format';
echo preg_replace($pattern, $replacement, $string);
我意識到,因爲沒有特定的模式,所以我也許可以手動添加\ n \ r分割每行分裂它可能是不可能的
非常感謝!
太糟糕了,E.M.史密斯沒有被寫成史密斯。在這種情況下,可以將作者分開,因爲它們全部以表格(((((INITIAL DOT)+ CAPITALISED_WORD_AS_NAME),)+ et)((INITIAL DOT)+ CAPITALISED_WORD_AS_NAME))...; )但事實上,它更好地手工分割它,知道你做了什麼。 – SWilk 2013-04-24 08:58:06
我已經找到了所有領域的臨時解決方案,但是我需要大量的數據來處理這些錯誤。我要編輯我的文章。 – 2013-04-24 10:12:02
謝謝!我在答覆的底部說過,我可以在每行添加中斷以將作者從文章中分離出來,因此每個條目總是有4行,手動需要5分鐘,我想這會有所幫助:)謝謝。 – multimediaxp 2013-04-24 12:20:04