如何在某一行后的字符串中生成正则表达式 [英] how to make a regular expression in a string after a certain line

查看:53
本文介绍了如何在某一行后的字符串中生成正则表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨编码器我是正则表达式的新手,所以我不太了解我会告诉你我有什么和我做了什么。



字符串上我必须把正则表达式我有两个搜索票号,就像220-7242648582这样我使用[0-9 || - ] {14}正则表达式

现在认为它是一个重复的字符串,我想在最后一个之后找到票号> md和之前)md

Hi coder i am new in regular expression so i don''t know much about i will show you what i have and what i did.

String on which i have to put regular expression i have two search ticket number in it like 220-7242648582 for this i use [0-9||-]{14} regex
now the think is that it is a repeated string and i want to find ticket number after last )>md and before )md

    RP/DCA1S219C/DCA1S219C            SL/SU   5APR13/2119Z   23ZEBK
   42 FA PAX 220-7242648582-83/ETLH/USD1166.75/04APR13/DCA1S211E/4
   9881134/S3-7/P1
    43 FA PAX 220-7242648584-85/ETLH/USD1166.75/04APR13/DCA1S211E/4
   9881134/S3-7/P2
022 AF/FA 220-7242636221-22/ETLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)
022 AF/FA 220-7242636223-24/ETLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)
022 RF-WS-NMC-US/WSTNGTNG CR-NYC1S21DD 33895934 SU 9999WS/RO
    -9C9482E6 NYCW33TNG 00000000 04APR0223Z
022/033 XF/FA 220-7242636221-22/ETLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)
033 AF/FA 220-7242636221-22/EVLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/

)>md
RP/DCA1S219C/DCA1S219C            SL/SU   5APR13/2119Z   23ZEBK
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)
    033 RF-2G-NYC1S21SP/00102G CR-NYC1S21DD 33895934 GS 00102G/R
    O-67ED3FEE NYC1S21SP 33608293 04APR0514Z
 022/034 XF/FA 220-7242636223-24/ETLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)
034 AF/FA 220-7242636223-24/EVLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)
034 RF-2G-NYC1S21SP/00102G CR-NYC1S21DD 33895934 GS 00102G/R
    O-67ED3FEE NYC1S21SP 33608293 04APR0514Z
033/035 XF/FA 220-7242636221-22/EVLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)
 034/035 XF/FA 220-7242636223-24/EVLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)

 )>md
RP/DCA1S219C/DCA1S219C            SL/SU   5APR13/2119Z   23ZEBK
    O-67ED3FEE NYC1S21SP 33608293 04APR0514Z
033/035 XF/FA 220-7242636221-22/EVLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)
034/035 XF/FA 220-7242636223-24/EVLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)
035 RF-P-NYC1S21SP/00102G CR-NYC1S21DD 33895934 GS 00102G/RO
    -67ED3FEE NYC1S21SP 33608293 04APR0514Z
044 AF/FA 220-7242648582-83/ETLH/USD1166.75/04APR13/
    DCA1S211E/49881134/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)
044 AF/FA 220-7242648584-85/ETLH/USD1166.75/04APR13/
    DCA1S211E/49881134/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)
044 RF-MZ CR-DCA1S211E 49881134 SU 1983MZ/RO-67ECDAB1 DCA1S2
    10W 49592222 04APR0658Z
)md



提前感谢


thanks in advance

推荐答案

有很多为RegEx开发的工具,其中之一是:

Expresso - 用于构建和测试正则表达式的工具 [ ^ ]



这真的应该是一个很好的帮助生成复杂的正则表达式模式。
There are lots of tools developed for RegEx, here is one of them:
Expresso - A Tool for Building and Testing Regular Expressions[^]

It really should be a great help to generate complex regex patterns.


我建​​议你从y中取一个子串我们最后'')> md''到'')md''像这样:



I would suggest you to take a substring from your LAST '' )>md'' to '')md'' like this:

 )>md
RP/DCA1S219C/DCA1S219C            SL/SU   5APR13/2119Z   23ZEBK
    O-67ED3FEE NYC1S21SP 33608293 04APR0514Z
033/035 XF/FA 220-7242636221-22/EVLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)
034/035 XF/FA 220-7242636223-24/EVLH/USD1166.75/03APR13/
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)
035 RF-P-NYC1S21SP/00102G CR-NYC1S21DD 33895934 GS 00102G/RO
    -67ED3FEE NYC1S21SP 33608293 04APR0514Z
044 AF/FA 220-7242648582-83/ETLH/USD1166.75/04APR13/
    DCA1S211E/49881134/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)
044 AF/FA 220-7242648584-85/ETLH/USD1166.75/04APR13/
    DCA1S211E/49881134/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)
044 RF-MZ CR-DCA1S211E 49881134 SU 1983MZ/RO-67ECDAB1 DCA1S2
    10W 49592222 04APR0658Z
)md







并在其上应用此正则表达式模式:



(\d {3} \-\d {10} \ -\d {2})



它将为您提供格式为XXX-XXXXXXXXXX-XX的所有票号。您可以迭代所有匹配。



另一方面,你的正则表达式会复杂得多。这似乎快速且易于理解。



另外,我期待您正在使用的正则表达式如上所述[ 0-9 || - ] { 14} 将匹配字符串,如:



2-2-2-2-2-2222



这不是票号。



希望它有所帮助!




and apply this regex pattern on it:

(\d{3}\-\d{10}\-\d{2})

It will give you all ticket number having format XXX-XXXXXXXXXX-XX. You can iterate over all the matches.

On the other hand your regex will be much more complex. This seems fast and easy to understand.

Also, I am expecting the regex you are using as mentioned in question [0-9||-]{14} will matches the string like:

2-2-2-2-2-2222

which is not a ticket number.

Hope it helps!


这篇关于如何在某一行后的字符串中生成正则表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆