【发布时间】:2021-02-12 17:40:04
【问题描述】:
请一位正则表达式专家帮我解决这个问题。
这里是文中的一个例子:
BO_ 2617247491 Msg_06: 8 DataloggerConfiguration
SG_ DL_error_active_3 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_active_2 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_active_1 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_active_0 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_5 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_4 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_3 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_2 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_1 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_0 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
BO_ 2617248003 Msg_08: 8 DataloggerConfiguration
SG_ DL_gl_err_rea : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_gl_err_rea_hi : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
BO_ 617247747 Msg_07: 8 DataloggerConfiguration
SG_ DL_error_code_11 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_10 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_6 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_di_nr_of_active_entries : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_9 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_8 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
SG_ DL_error_code_7 : 11|8@1+ (1,0) [0|1111] "[-]" Vector__XXX
我正在尝试查找那些消息标识符(10 位数字。在 BO_ 之后),在它后面的任何地方都有 DL_error_code。
据我所知是这个正则表达式:
(?<!VAL_\s)\d{10}(?=.*\n*.*DL_error_code)
【问题讨论】:
-
您的正则表达式没有包含文本
BO_的任何原因?我认为这很简单:"BO_\s+(?<id>\d+)\s+" -
或者干脆... ^BO_ (\d{10})