Мне нравится создавать в Java регулярное выражение (regex), которое должно быть истинным, если приходит кроме одного или нескольких нулей или приходит отличный от 3037
.
Я подготовил 2 разных регулярных выражения для этих 2 условий
0
: [^0]+
3037
: ^((?!^3037$).)*$
но не знаю как поставить между ними OR
.
Пропустить случай:
001
002
30377
23037
2
4
55
Состояние отказа:
0
00
000
0000
00000
3037
Я просто ищу регулярное выражение для условия НЕ 0 (или более 0) ИЛИ НЕ 3037.
У меня есть одна таблица конфигурации, в которой я должен указать ответ об ошибке в виде регулярного выражения java .. поэтому, если приходит отличный от 0 или 3037, это должно быть ошибкой ..
Вы можете использовать: ^(?!3037$)[^0]*$
спасибо за ответ, но здесь он не работает 3037 - это целая строка, это условие не дает совпадения, найденного на 003 и 23037, но оно должно давать совпадение, так как оно находится в условии
Я уже просил вас размещать действительные и недействительные примеры в вашем вопросе, который вы еще не сделали, поскольку это причина, по которой люди голосуют за закрытие этого вопроса.
кстати, вы писали, что проверка должна завершиться неудачей, если на входе есть какой-либо ноль, поэтому в этом случае 23037
или 003
не сработают, потому что оба содержат ноль.
Извините за меньшую ясность .. Пройдите регистр: 001, 002, 30377, 23037, 2, 4, 55, ..... Неудачное условие: 0, 00, 000, 0000, 00000, 3027, поэтому только в этом случае не выполняется.
Вы можете использовать это комбинированное регулярное выражение для двух условий (и оно не использует чередование):
^(?!(?:3037|0+)$)\d*$
Детали RegEx:
^
: Начало ввода(?!(?:3037|0+)$)
: отрицательный просмотр вперед для подтверждения ввода не 3037
и не всех нулей\d*
: совпадение любой цифры 0 или более раз$
: Конец вводаспасибо за ответ, но здесь он не работает 3037 - это целая строка, это условие не дает совпадения, найденного на 003 и 23037, но оно должно давать совпадение, так как оно находится в условии
мое текущее состояние [^ 0] +: все, кроме нуля, плохо, но хочу добавить к нему 3037, то есть все, кроме нуля или 3037, должно быть плохим,
Извините за меньшую ясность .. Пройдите регистр: 001, 002, 30377, 23037, 2, 4, 55, ..... Неудачное условие: 0, 00, 000, 0000, 00000, 3027, поэтому только в этом случае не выполняется.
Это очень срочно, сэр, не могли бы вы помочь
опечатка ошибка это 3037 .. извините еще раз ..
Спасибо, сэр, все работает нормально ..
Можете ли вы добавить в свой вопрос какие-нибудь верные и неверные примеры.