#regex #regex-negation
#регулярное выражение #отрицание регулярных выражений
Вопрос:
У меня есть база данных, которая содержит идентификатор, такой как
ID
000000000000000000000PBC_1164321
00000000000000000000000RP_395954
00000000000000000000000MOP_395954
00000000000000000000000395954
Я хочу получать только данные после начальных 0
примерно так:
ID
PBC_1164321
RP_395954
MOP_395954
395954
Я тестирую его на https://regexr.com . Я пытался использовать ^(0*)
, но он выбирает все 0. Я хочу противоположное этому, не выбирать все начальные 0, а все после него. Пожалуйста, помогите.
Я не использую какой-либо язык, такой как Python и R. Просто хочу использовать регулярное выражение для выбора / сопоставления чего-либо, кроме ведущих 0
Комментарии:
1. Попробуйте с
sub
помощью . Вы можете указать начало строки (^
), за которым следует 0 или более 0, и заменить его на""
,sub(^0*", "", df1$ID)
2. Вы можете попробовать шаблон
"^0*"
по вашей ссылке — все, что делает ссылка, — это сопоставление регулярных выражений. Возможно, вам захочется многое сделать с совпадениями регулярных выражений — извлечь их, извлечь всю строку, если есть совпадение, вернуть логическое значение, если есть совпадение, заменить совпадение и т.д.sub
это функция R, которая заменяет (заменяет) совпадение. Хороший способ удалить 0s — заменить 0s ничем""
. Это то, что предлагает акрун.3. Хситидж, ты пробовал?
sub("^0*", "", "00000000000000000000000MOP_395954")
возвращает"MOP_395954"
именно то, что вы запрашивали.4.
([^0].*)
должно сработать для вас @KshitijYadav5. @Toto, пожалуйста, прочтите остальные комментарии, прежде чем закрывать это как обман. OP специально спросил о том, как сделать это без python / R, и хотя мне не ясно, что это значит, это предполагает, что необходимо больше деталей, прежде чем знать, что это дубликат.
Ответ №1:
Вы можете сопоставить текст после начальных нулей, используя ([^0].*)
Ответ №2:
Использование /[A-Z1-9].*/gi
[A-Z1-9] будет соответствовать любому символу в A-Z 1-9, по сути, не 0, точка соответствует любому символу, а звезда соответствует ему 0 или более раз. Теги совпадают глобально и не чувствительны к регистру.
Сначала я попытался использовать решение, похожее на @Codelessbugging, но не смог заставить сайт правильно его обработать.
Комментарии:
1. Я думаю, что codeless и ваш оба правы. Поскольку программное обеспечение, которое я использую, выполняет интерпретацию по одной строке за раз, оно смогло проанализировать его с помощью того, что представил codeless.