组合字符和数字 php
Combine characters and numbers php
我正在从 pdf 文件中剥离数据,因此我将 pdf 转换为 txt 并从中获取数据。我在这样的字符串中得到主要记录
CARDS 1 GA350C 3 2 0 . 0 450.0 DIGCL R 90 . 0 55.0 2Y 4 4 #
当只有一个记录时,有时我在单个字符串中得到多个记录这样,我用“#”字符发现字符串中有多个记录
Invite 1 MA300C 3 2 0 . 0 450.0 DIGCL R 9 9 . 0 210.0 6 Y 4 4 #RSVP 1 OFF-90 A 1 3 2 0 . 0 450.0 DIGBH S 9 9 . 0 210.0 6 N 1 0 #Letter1 1 MA130C 3 2 0 . 0 450.0 DIGC L R 29 7 . 0 210.0 2 N 4 0 #Letter1 1 OFF-90 A 1 3 2 0 . 0 450.0 DIGBH S 29 7 . 0 210.0 2 N 1 0 #Envelopes 1 ENVDL E P F S 3 2 0 . 0 450.0 DIGBH S 13 0 . 0 225.0 1 N 1 0 #
在第一行实际字符串应该像
CARDS 1 GA350C 320.0 450.0 DIGCLR 90.0 55.0 2 Y 4 4
这里的Y代表Yes 所以这个字符有时候N代表No
如何按照我显示的方式连接数字和字母?无论字符串长度如何,它都必须工作
我用过
$string = "CARDS 1 GA350C 3 2 0 . 0 450.0 DIGCL R 90 . 0 55.0 2Y 4 4 #";
$newstring = preg_replace("/(\d+)\s+(?=\d+)/", "", $string);
但是没有运气,请问有人有解决办法吗?感谢您查看此问题。
我不会一次性完成 preg_replace
。
下面的代码会将所有格式奇特的数字转换为新格式,例如:
$string = "CARDS 1 GA350C 3 2 0 . 0 450.0 DIGCL R 90 . 0 55.0 2 Y 4 4";
preg_match_all("/(\d+\s)+\.\s?0/", $string, $matches);
$newNumbers = array_map(
function ($number) { return str_replace(' ', '', $number); },
$matches[0]
);
$newstring = str_replace($matches[0], $newNumbers, $string);
结果:
CARDS 1 GA350C 320.0 450.0 DIGCL R 90.0 55.0 2 Y 4 4
我正在从 pdf 文件中剥离数据,因此我将 pdf 转换为 txt 并从中获取数据。我在这样的字符串中得到主要记录
CARDS 1 GA350C 3 2 0 . 0 450.0 DIGCL R 90 . 0 55.0 2Y 4 4 #
当只有一个记录时,有时我在单个字符串中得到多个记录这样,我用“#”字符发现字符串中有多个记录
Invite 1 MA300C 3 2 0 . 0 450.0 DIGCL R 9 9 . 0 210.0 6 Y 4 4 #RSVP 1 OFF-90 A 1 3 2 0 . 0 450.0 DIGBH S 9 9 . 0 210.0 6 N 1 0 #Letter1 1 MA130C 3 2 0 . 0 450.0 DIGC L R 29 7 . 0 210.0 2 N 4 0 #Letter1 1 OFF-90 A 1 3 2 0 . 0 450.0 DIGBH S 29 7 . 0 210.0 2 N 1 0 #Envelopes 1 ENVDL E P F S 3 2 0 . 0 450.0 DIGBH S 13 0 . 0 225.0 1 N 1 0 #
在第一行实际字符串应该像
CARDS 1 GA350C 320.0 450.0 DIGCLR 90.0 55.0 2 Y 4 4
这里的Y代表Yes 所以这个字符有时候N代表No
如何按照我显示的方式连接数字和字母?无论字符串长度如何,它都必须工作
我用过
$string = "CARDS 1 GA350C 3 2 0 . 0 450.0 DIGCL R 90 . 0 55.0 2Y 4 4 #";
$newstring = preg_replace("/(\d+)\s+(?=\d+)/", "", $string);
但是没有运气,请问有人有解决办法吗?感谢您查看此问题。
我不会一次性完成 preg_replace
。
下面的代码会将所有格式奇特的数字转换为新格式,例如:
$string = "CARDS 1 GA350C 3 2 0 . 0 450.0 DIGCL R 90 . 0 55.0 2 Y 4 4";
preg_match_all("/(\d+\s)+\.\s?0/", $string, $matches);
$newNumbers = array_map(
function ($number) { return str_replace(' ', '', $number); },
$matches[0]
);
$newstring = str_replace($matches[0], $newNumbers, $string);
结果:
CARDS 1 GA350C 320.0 450.0 DIGCL R 90.0 55.0 2 Y 4 4