字串示例:
- AFN/FMHABX983,.XXXXXX,,155650/FPON43531W078351,0/FCOADS,01/FCOATC,017167^M
我需要一個可以找到的正則運算式 /FCOATC,01
/FCOATC, 是固定匹配
逗號后的值可以是:01,02,03,1,2,3
7176 是一個 CRC 值,可以是任意 4 個字母數字字符。
我最初從這個正則運算式開始,(\/)FCOATC,[^\/|^\n]*但后來意識到我也不希望它匹配 4 個字符的 CRC 值。但我很掙扎,因為逗號后面的值可以是 1 或 2 個字符。
注意:我包含了 ^/,因為這個 FCOATC 部分可能跟在另一個以 / 開頭的部分之后。例如:
- AFN/FMHABX983,.XXXXXX,,155650/FPON43531W078351,0/FCOADS,01/FCOATC,01/FCOXYZ,17167^M
所以我需要它考慮每個實體。
編輯添加以下內容: 為了打破 /FMH 部分,我在那里也有一個困境。該部分的突破如下:
Fixed Match /FMH
1-7 alpha numeric characters
Fixed Match ,
7 [.0-9A-Z-] characters
Optional Fixed Match ,
Optional 6 characters
Optional Fixed Match ,
Optional 6 digits
所有這些都可以跟一個 / 或一個 4 個字符的 CRC 代碼,然后是一個回車換行符。我想獲取上面列出的所有內容,不包括可能跟隨的 / 或 4 個字符的 CRC。
例子:
/FMHABX983,.XXXXXX,,155650/
/FMHABX983,.XXXXXX/
/FMHAMX022,.XXXXXX,A07176,003555/
/FMHAMX022,.XXXXXX,A071761234\r\n
/FMHABX983,.XXXXXX1234\r\n
/FMHABX983,.XXXXXX,,1556501234\r\n
/FMHABX983,.XXXXXX,,1234\r\n
/FMHABX983,.XXXXXX,1234\r\n
感謝您的幫助!
uj5u.com熱心網友回復:
您可以將捕獲組更改為您想要保留的內容,并匹配一個可選的零后跟 1、2 或 3。請注意,如果模式的分隔符不是,則/您不必轉義正斜杠。
\/(FCOATC,0?[123])
請參閱正則運算式演示。
如果應該有 4 位數字或/字串的結尾,您可以使用|匹配以下任一選項的交替匹配:
\/(FCOATC,0?[123])(?:\d{4}|\/|$)
請參閱另一個正則運算式演示。
編輯
您可以選擇匹配中間的所有部分,最后匹配一個/或 4 個數字
/(FMH[a-zA-Z0-9]{1,7},[.0-9A-Z-]{7},?(?:[a-zA-Z0-9]{6})?,?(?:\d{6})?)(?:/|\d{4})
正則運算式演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/348238.html
標籤:正则表达式
