繁体   English   中英

RegExp Match PHP

[英]RegExp Match PHP

数据:

N15319542045C13_1_3/61488007C13-130083_1_3/61488007C13-130083-1_1_3/P1197443641_1_3SD|1
NP1196939393_1_3SU|OD=2/7;|BNP1196939393_1_3SU|OD=2/7;|BNP1196930222_1_3SU|OD=4/11;|
NP1196930222_1_3SU|OD=4/11;|
N15319384625C13_1_3/61445794C13-130077_1_3SD||BN15319384625C13_1_3/61445794C13-130077_1_3SD||

RegExp:

(N(.*?)S([UID])\|(.*?))(?:B|\|.?$)

我试图使用上述正则表达式找到7个匹配项,但只有6个匹配。 不确定如何解决以匹配第一行。

格式:

N(key)S(action)|(value or end)

结束取决于不同的比赛

如果有人需要,我就解决了:

(\x15(.*?)\x01([UID])\|(.*?))(?:.*?\x08|.*\|?$)

正则表达式不起作用,因为在S[UID]您期望2 | 按照正则表达式,但是在第一个输入字符串中只有一个。

一种解决方法是使第二组可选,并移出字符串末锚$

(N(.*?)S([UID])\|(.*?))(?:B|\|.?)?$

正则表达式演示


或者可能更简单

 N.*?S[UID]\\|.*$ 

正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM