我有像下面给出的文件,我想验证我的文件,如果第一行是有“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
有没有什么方法可以使用正则表达式来匹配这个模式?
有什么建议请…
谢谢!
2条答案
按热度按时间5jdjgkvh1#
试试这个
/-分隔符
ZZ=\d+.+XXX.+-模式
/-结束分隔符
s-单行修饰符
我试过在php和它的作品
https://regex101.com/r/KXlE1q/1
8oomwypt2#
假设“records”是指由“\r”和/或“\n”分隔的行,并且每个数据集都在一个单独的文件中,则检查此模式已经足够了:
相反,如果您将所有数据集合并在一个文件中,则上面由Wiktor Stribiżew提出的模式似乎更精确地涵盖了您所寻求的模式。
编辑:
这应该匹配上面模式之后的任何内容:
(我也将[\r\n]更正为[\r\n]{1,2})