2014-12-09 4 views
0

У меня есть текст. Мне нужно найти 3 группы строк. Стараюсь выражение: \r?\n\r?\n\r?[0-9A-Z].*\d{7}, но я нахожу только 2 строки вместо 3. следует выделить 00170784, HEDINV, 00173575, но я получаю только 00170784 и 00173575 Это текст:Регулярное выражение для группы

BUY 
USM4 
200 contracts 
04/28/2014 15:50 
00170784 
56 
contracts 
HEDINV 
64 
contracts 
00173575 
80 
contracts 
At average price of USD 134.375 

SELL 
USM4 
200 contracts 
04/28/2014 15:50 
00170784 
56 
contracts 
HEDINV 
64 
contracts 
00173575 
80 
contracts 
At average price of USD 134.5938 
+0

Почему вы хотите выделить этот «ХЕДИНВ»? '\ d {7}' в вашем регулярном выражении не будет соответствовать этому. –

+1

На каком языке вы используете? Кроме того, я не могу заставить ваше регулярное выражение соответствовать тому, что вы ищете ... Это помогло бы, если бы вы прямо заявили, что хотите захватить, особенно если есть более эффективное регулярное выражение, которое будет использоваться ... –

+0

Мы можем Помогите, если мы не знаем, что вы хотите совместить и почему. Все, что мы знаем, это то, что вы хотите совместить '00170784',' HEDINV' и '00173575', так что, вот вы здесь:' 00170784 | HEDINV | 00173575'. –

ответ

0

Могу ли я предлагаю использовать это вместо ?

^\d{8}$|^[A-Z]{6}$ 

У этого есть две группы захвата, которые он ищет. Одна из них - 8-значная последовательность для всей строки. Другая - последовательность из 6 букв для всей строки. Это захватывает то, что вы ищете, если нет конкретной причины, по которой вы используете все эти соответствия.

+0

Большое спасибо. Это лучше – Natan

+0

Прохладный, @ Натан. Если это сработало для вас, пожалуйста, сделайте мне одолжение и отметьте мой ответ, как принято с помощью Checkmark рядом с ним :) –

Смежные вопросы