我有下面给出的文件 我想验证我的文件,如果第一行有" ZZ ="第三条记录只有" XXX"
如果此模式与拒绝文件不匹配。
文件示例
ZZ=101
OO
XXX
111111111111
222222222222
00000000000
AAAAAAAAAAAA
valid file example
ZZ=101
OO
XXX
111111111111
222222222222
00000000000
AAAAAAAAAAAA
Not valid file
ZZ=101
OO
XSS (should be rejected except XXX)
111111111111
222222222222
00000000000
AAAAAAAAAAAA
Not valid file
HH=101 (should be rejected except ZZ=)
OO
XXX (should be rejected except XXX)
111111111111
222222222222
00000000000
AAAAAAAAAAAA
我有什么方法可以使用正则表达式来匹配这种模式吗?
请提出任何建议..
谢谢!
答案 0 :(得分:0)
假设“记录”是指由“\ r”和/或“\ n”分隔的行,并且每个数据集都在一个单独的文件中,检查此模式就足够了:
^ZZ=.*[\r\n]{1,2}.*[\r\n]{1,2}XXX
相反,如果您将所有数据集合并到一个文件中,Wiktor Stribiżew上面提出的模式似乎更准确地涵盖了您所寻求的模式。
修改强>
这应该匹配上述模式后的任何内容:
^ZZ=.*[\r\n]{1,2}.*[\r\n]{1,2}XXX[\s\S]*
(我还将[\ r \ n]更正为[\ r \ n] {1,2})
答案 1 :(得分:0)
试试这个
/ZZ=\d+.+XXX.+/s
/ - 分隔符
ZZ = \ d +。+ XXX。+ - 模式
/ - 结束分隔符
s - 单行修饰符
我已经尝试过在php中运行