我已经能够使用
Imagemagick从
http://www.imagemagick.org读取文本文件中的数据.
我明白了
- 0,0: (255,255,0) #FFFFFF00 srgba(255,0)
- 1,0)
- 2,0)
- 40,23: (162,167,32,24) #A2A72018 srgba(162,0.0941176)
- 41,23: (255,0)
- 42,166,48,40) #A2A63028 srgba(162,0.156863)
- 43,47,40) #A2A62F28 srgba(162,0.156863)
我对正则表达式不熟悉我将使用哪种表达方式@H_403_6@得到开头的坐标和最后的rgba().
好吧,我有点想通了正则表达式@H_403_6@这是它的一部分
- /rgba\([0-9]{1,3},[0-9]{1,[0-9]\.[0-9]{1-9}/gi
但最后一部分与rgba()的小数部分不匹配.
好吧,我知道它已经有一段时间了,我不确定我是否应该开始一个新线程
但我已经想出如何删除以删除两个中间部分,所有括号@H_403_6@和srgba,也是零alpha的行,但不知何故,它在文本文件中留下了一个空白区域.如果有任何改进,任何人都可以看到.
- $fh = fopen("pcmanD.txt","r");
- $fg = fopen("pcmanJ.txt","wt");
- $new_array = ""; $parts = "";
- while (!feof($fh)) {
- $line = fgets($fh);
- $lines[] = $line;
- $newword = "";
- $match1 ="/:\s?\s?\(\s?\s?\d+,\s?\s?\d+,\s?\s?\d+\)\s?\s?#[a-zA-Z0-9]{6,8}\s?\s?srgba/";
- $match2 ="/^\s\s?/";
- $match3 = "/\s\(/";
- $match4 = "/\)/";
- $match5 = "/[0-9]{1,0[^\.]/";
- $parts1 = preg_replace($match1,"",$line );
- $parts2 = preg_replace($match2,$parts1 );
- $parts3 = preg_replace($match3,",$parts2 );
- $parts4 = preg_replace($match4,$parts3 );
- $parts5 = preg_replace($match5,$parts4);
- echo "<pre>";
- print_r($parts5);
- echo "</pre>";
- fwrite($fg,$parts5);
- }
- fclose($fg);
- fclose($fh);
但是这个代码出现了新的问题,我在浮点上得到了两倍或三倍@H_403_6@比赛结束后.
- $thisisit[] = "";
- $thisisit2[] = "";
- $countThis = 0;
- $fh = fopen("sometext.txt","r");
- $new_array = ""; $parts = "";
- while (!feof($fh)) {
- $line = fgets($fh);
- $line2 = $line;
- $newword = "";
- $match1 ="/^\s*?[\d]+,[\d]+/";
- $parts1 = preg_match($match1,$line,$regs);
- foreach($regs as $key => $lame) {
- $thisisit[] = $lame;
- }
- $match2 ="/(?:(\d{1,\d{1,))(\d{1,[01][\.]?[\d]*)/";
- $parts2 = preg_match($match2,$line2,$regs2);
- foreach($regs2 as $key2 => $lame2) {
- $thisisit2[] =$lame2;
- }
- $countLame = count($thisisit);
- }
- echo "</script>";
- $newCounter = 0;
- for($i = 0; $i < (500); $i++) {
- echo $thisisit[$i] . "<br />";
- echo $thisisit2[$newCounter] . "<br />" ;
- $newCounter = $newCounter +4;
- }
- fclose($fh);
这是我正在处理的文本文件中的一些文本
- 42,23,162,0.156863
- 43,0.156863
- 44,170,67,0.219608
- 45,0.156863
- 46,0.219608
- 47,37,0.117647
- 48,0.0941176
- 86,163,40,0.12549
- 87,160,164,0.164706
- 88,188,190,122,0.352941
- 86,24,233,234,197,0.486275
- 87,251,250,1
- 88,1
- 89,1
- > '0,0)'.match(/^([^:]+) *: *\(([^)]+)\)/)
- [ '0,0)','0,0','255,index: 0,input: '0,0)' ]