我正在尝试使用 PHP 中的正则表达式解析 .X12 文件中的一些数据。该模式是大写字母FS
后跟正好 13 个数字字符。
以下是一些文本的示例:PROCUREMENT333RFQ3PO100011EAFS8340015381823PKGFSHALL
我需要从其他文件中提取 'FS8340015381823' 和 13 个数字字符的其他变体。
这是对我不起作用的代码:
$regex = '/FS[0-9]{13}?/';
preg_match( $regex, $x12, $matches );
var_dump( $matches );
我也尝试过这些正则表达式模式:
$regex = '/FS8340015381823/';
$regex = '/FS\d{13}?/';
如果我在执行 a 之前将上面的示例字符串存储到 $x12 变量中,所有这些正则表达式preg_match()
都可以正常工作,但是当我加载内容时它们对原始文件不起作用。当我echo
将 .X12 文件内容显示在屏幕上时,我看到了我在上面用作示例的确切字符串。如果我使用正则表达式/FS/
,它会找到“FS”。
此正则表达式适用于原始文件数据,但返回的匹配项不仅仅是“FS”之后的数字字符:
$regex = '/FS.{13}?/';
我机器上的终端没有显示奇怪的字符吗?我在 Amazon EC2 上运行 Linux CentOS。