2015-10-08 3 views
-5

Я хотел бы создать регулярное выражение для этого:Совпадение группы с регулярным выражением

Моя регулярное выражение: /^(\d+)[&]|[&](\d+)|(\d+)/g

Тесты с желаемыми результатами:

  1. 1501: 1501
  2. 1501&&15011: 1501, 15011
  3. : 1501, 15011
  4. 1501;OR;15011: 1501, 15011
  5. >=1501;OR;15011: 15011
  6. 1501;OR;>=15011: 1501
  7. >=15011: нулевой

Но это, кажется, не работает с str.match() в JavaScript.

+1

Почему не ' '1501 && 15011'.split (' &&');' – Tushar

+0

Поскольку тест? может быть '1501' или' 15011 && 15001' или '1501; OR; 15011' ... – tonymx227

+1

поэтому почему бы просто не разделить ('[^ \ d] +')'? на разделение на незначные символы –

ответ

2

Попробуйте с:

[;&](\d+)|^(\d+)[&;]? 

DEMO

вы можете получить значения с захваченными группами 1 и 2.

+0

Это не работает' '> = 1501; OR; 15011'.match (/ [; &] (\ d +) |^(\ d +) [&; ]?/g) ':'; 15011', результат должен быть '15011'. – tonymx227

+0

@ tonymx227 как я писал в ответ, вы можете получить значения с захваченными группами 1 и 2_, а не напрямую с 'match()' –

+0

Итак, есть ли какая-нибудь другая функция? – tonymx227

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