如何在 preg_match 中添加可选的验证模式?
How can I add optional validation patten in preg_match?
我正在尝试使用 preg_match
来解析该行。但是,无法正确得到结果。
我想用可选的 //
字符解析那些行。
基本思路是有些行可能包含 //0016OIXXXXXXX(//4 位数字和 9 str),有些行可能不包含(//4 位数字和 9 str)。
下一行 \n
是强制性的。
这是一些示例行;
第 1 行
1812121212DD2220,31NTRFNONREF
502?102330
第 2 行
1811091109CD20693,12NTRFRMSOIC110871941//0016RFXXXXXXX
206?000801
这是我的彭定康;
/(\d{6})((\d{2})(\d{2}))?(C|D)([A-Z]?)([0-9,]{1,15})([A-Z]{1,4})([A-Z a-z 0-9]{1,16})(\/\/)([0-9A-Z]{1,16})(\s*\n)([0-9]{1,3})(\?)([0-9]{0,6})/
当前 patten 只能与 //
一起使用。如果没有 //
,则 patten 被破坏并且无法解析该行。
我不知道如何添加 (\/\/)([0-9A-Z]{1,16})
作为可选模式。
提前致谢
:)
如果我理解正确你的问题。
请尝试在组之间使用 or
表达式并验证您的任何情况。
例如
`(pattern1) | (pattern-2) | ( (pattern3) | (pattern 4) )`
请尝试考虑使用 |
表达式。
把optional部分做好就好了...optional:
\d{6}(?:\d{4})?[CD][A-Z]?[0-9,]{1,15}[A-Z]{1,4}[A-Za-z0-9 ]{1,16}(?:\/\/[0-9A-Z]{1,16})?\s*\n[0-9]{1,3}\?[0-9]{0,6}
// ^^^^^^^^^^^^^^^^^^^^^^^
我已经删除了捕获组以提高灵活性,如果你真的想保留它们:
(\d{6})((\d{2})(\d{2}))?(C|D)([A-Z]?)([0-9,]{1,15})([A-Z]{1,4})([A-Za-z0-9 ]{1,16})(?:(\/\/)([0-9A-Z]{1,16}))?(\s*\n)([0-9]{1,3})(\?)([0-9]{0,6})
我正在尝试使用 preg_match
来解析该行。但是,无法正确得到结果。
我想用可选的 //
字符解析那些行。
基本思路是有些行可能包含 //0016OIXXXXXXX(//4 位数字和 9 str),有些行可能不包含(//4 位数字和 9 str)。
下一行 \n
是强制性的。
这是一些示例行;
第 1 行
1812121212DD2220,31NTRFNONREF
502?102330
第 2 行
1811091109CD20693,12NTRFRMSOIC110871941//0016RFXXXXXXX
206?000801
这是我的彭定康;
/(\d{6})((\d{2})(\d{2}))?(C|D)([A-Z]?)([0-9,]{1,15})([A-Z]{1,4})([A-Z a-z 0-9]{1,16})(\/\/)([0-9A-Z]{1,16})(\s*\n)([0-9]{1,3})(\?)([0-9]{0,6})/
当前 patten 只能与 //
一起使用。如果没有 //
,则 patten 被破坏并且无法解析该行。
我不知道如何添加 (\/\/)([0-9A-Z]{1,16})
作为可选模式。
提前致谢 :)
如果我理解正确你的问题。
请尝试在组之间使用 or
表达式并验证您的任何情况。
例如
`(pattern1) | (pattern-2) | ( (pattern3) | (pattern 4) )`
请尝试考虑使用 |
表达式。
把optional部分做好就好了...optional:
\d{6}(?:\d{4})?[CD][A-Z]?[0-9,]{1,15}[A-Z]{1,4}[A-Za-z0-9 ]{1,16}(?:\/\/[0-9A-Z]{1,16})?\s*\n[0-9]{1,3}\?[0-9]{0,6}
// ^^^^^^^^^^^^^^^^^^^^^^^
我已经删除了捕获组以提高灵活性,如果你真的想保留它们:
(\d{6})((\d{2})(\d{2}))?(C|D)([A-Z]?)([0-9,]{1,15})([A-Z]{1,4})([A-Za-z0-9 ]{1,16})(?:(\/\/)([0-9A-Z]{1,16}))?(\s*\n)([0-9]{1,3})(\?)([0-9]{0,6})