正则表达式 – 记事本 – 尝试重新格式化一些东西

我有一个基本上有行的CSV看起来像:

06444|WidgetAdapter 6444|Description:

Here is a description.
Maybe some more.
|0

第三个字段中的文本总是不同且不同,我试图仅用< br>替换其中的所有换行符,因此它最终为

06444|WidgetAdapter 6444|Description: <br>Here is a description.<br>Maybe some more.<br>|0

编辑:

我基本上需要摆脱所有的换行符,所以每一行都是一个合适的VALUE | VALUE | VALUE | VALUE.标准化/美化/清洁它.

我的所有工具都无法正确导入,phpMyAdmin chokes等.
该字段内有换行符,有双重引号未转义等.

示例其他字段:

08681|Book 08681|"Testimonial" - Person

You should buy this.|

另一个字段的示例:

39338|Itemizer||

最佳答案 如果您知道有4列,则可以轻松解析数据.例如,这是一个PHP行,它产生一个包含所有数据的数组.数组中的每一行都是另一个包含所有捕获组的数组:[0]具有完整匹配,每列有[1] – [4]:

$pattern = '/^([^|]*)\|([^|]*)\|([^|]*)\|([^|]*)$/m';
preg_match_all($pattern, $data, $matches, PREG_SET_ORDER);

模式非常简单:它需要4个值(不是管道符号),由3个管道分隔.获得数据后,您可以按照自己的方式轻松地重建数据,例如使用nl2br.
请注意,如果第一列和最后一列也可以包含新行,则无法可靠地解析数据.

工作实例:http://ideone.com/gG0K3

点赞