У меня есть проблема, с которой я боролся последние пару часов.Я не мог понять это даже после того, как посмотрел похожие посты по stackoverflow и исследовал, поэтому я просто собираюсь опубликовать это здесь, и я уверен, что кто-то может понять это за две секунды ...
Здесьэто пример текста:
1) IF045196B LOREM-IPSEM,DOLOR1 G35311 12/07/2018 09/07/1985 FNL 91452SB=;* TRANS TO HOLD ORDER
2) IF045197B LOREM-IPSEM,DOLOR1 G35311 12/07/2018 09/07/1985 FNL 91377SB=;* ALTERNATE LAB DRAW
3) IF044770B LOREM-IPSEM,DOLOR1 G35311 09/26/2018 09/07/1985 3020SBX=;R RANDOM TEXT
RANDOM TEXT;* LOREM IPSEM
4) IF044445B LOREM-IPSEM,DOLOR16 G35311 07/18/2018 09/07/1985 3020SBX=;R RANDOM TEXT
RANDOM TEXT;* LOREM IPSEM
5) IF044446B LOREM-IPSEM,DOLOR17 G35311 07/18/2018 09/07/1985 10165SB=;S/R MOVIE TITLE
3020SBX=;R RANDOM TEXT RANDOM TEXT;* LOREM IPSEM
6) IF044447B LOREM-IPSEM,DOLOR18 G35311 07/18/2018 09/07/1985 10256SB=;S/R MOVIE TITLE
3020SBX=;R RANDOM TEXT RANDOM TEXT;* LOREM IPSEM
7) IF044449B LOREM-IPSEM,DOLOR19 G35311 07/18/2018 09/07/1985 10256SB=;S/R MOVIE TITLE
3020SBX=;R RANDOM TEXT RANDOM TEXT;* LOREM IPSEM
Линии 1 и 2 не совпадают, потому что они говорят «ПЕРЕДАЧА, ЧТОБЫ УДЕРЖИВАТЬ» и «ЧЕРТЕЖ АЛЬТЕРНАТИВНОЙ ЛАБОРАТОРИИ».
Мне нужно регулярное выражение, которое будетверните мне строки 3, 4, 5, 6 и 7.Мне нужна вся строка назад, а затем я собираюсь манипулировать этими строками позже в моей программе.
Поэтому, чтобы было ясно, я должен получить 5 совпадений назад.
3) IF044770B LOREM-IPSEM,DOLOR1 G35311 09/26/2018 09/07/1985 3020SBX=;R RANDOM TEXTRANDOM TEXT;* LOREM IPSEM
4) IF044445B LOREM-IPSEM,DOLOR16 G35311 07/18/2018 09/07/1985 3020SBX=;R RANDOM TEXTRANDOM TEXT;* LOREM IPSEM
5) IF044446B LOREM-IPSEM,DOLOR17 G35311 07/18/2018 09/07/1985 10165SB=;S/R MOVIE TITLE 3020SBX=;R RANDOM TEXT RANDOM TEXT;* LOREM IPSEM
6) IF044447B LOREM-IPSEM,DOLOR18 G35311 07/18/2018 09/07/1985 10256SB=;S/R MOVIE TITLE 3020SBX=;R RANDOM TEXT RANDOM TEXT;* LOREM IPSEM
7) IF044449B LOREM-IPSEM,DOLOR19 G35311 07/18/2018 09/07/1985 10256SB=;S/R MOVIE TITLE 3020SBX=;R RANDOM TEXT RANDOM TEXT;* LOREM IPSEM
Я думаюответ будет включать некий негативный взгляд вперед / назад в сочетании с приведенным ниже регулярным выражением.
(?<=\s+\d+\)\s+).*
Вот постоянная ссылка, если вы хотите проверить это. Regex Постоянная ссылка .
Это регулярное выражение соответствует всей строке, за исключением числа в начале, такого как "1)" или "2)".Теперь мне просто нужно регулярное выражение, чтобы сделать отрицательный взгляд вперед и исключить строки 1 и 2, так как в них есть «ПЕРЕДАЧА, ЧТОБЫ УДЕРЖИВАТЬ» и «ЧЕРТЕЖ АЛЬТЕРНАТИВНОЙ ЛАБОРАТОРИИ».
Ваша помощь будет принята с благодарностью!
Спасибо,
Марк С.