Rgegexpression - выберите в соответствии с вхождениями - PullRequest
1 голос
/ 30 марта 2011

у меня
[1] "43300" "22222" "22222" "22222" "22222" "22222" "44200" "32122" "22222" "22222" "55000" "22222" "55000" "22222" "33220" "22222 "
[17] "22222" "22222" "22222" "22222" "22222" "22222" "32221" "22222" "55000" "22222" "22222" "22222" "22222" "22222" "33220" "33310 "

Как выбрать те (внутри "") с помощью

а) отсутствие вхождения 0
б) ровно 1 вхождение 0
в) ровно 2 вхождения 0
г) ровно 3 вхождения 0 и т. д.

для a) ([1-5 ^ 0] +) не работает

Ответы [ 3 ]

5 голосов
/ 30 марта 2011

Попробуйте этот шаблон:

"((?:[1-5]*0){N}[1-5]*)"

Например:

  • "((?:[1-5]*0){3}[1-5]*)" - 3 нуля
  • "((?:[1-5]*0){2}[1-5]*)" - 2 нуля
  • "((?:[1-5]*0){1}[1-5]*)" - 1 ноль, так же, как "([1-5]*0[1-5]*)"
  • "((?:[1-5]*0){0}[1-5]*)" - 0 нулей, так же как "([1-5]*)"

Вы также можете удалить кавычки и группу захвата и использовать вместо них границы слов:

\b(?:[1-5]*0){N}[1-5]*\b
0 голосов
/ 30 марта 2011

если количество цифр в строке = 5

а) [^0]{5}

б) [^0]{4}

в) [^0]{3}

г) [^0]{2}

0 голосов
/ 30 марта 2011

При условии отсутствия начальных нулей:

a) [1-9]+

b) [1-9]+0[1-9]*

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...