как отрицать любое регулярное выражение в Java

У меня есть регулярное выражение, которое я хочу отрицать, например

/(.{0,4})

which String.matches возвращает следующее

"/1234" true
"/12" true
"/" true
"" false
"1234" false
"/12345" false

Есть ли способ отрицать (используя только regx) приведенное выше, чтобы получить следующие результаты:

"/1234" false
"/12" false
"/" false
"" true
"1234" true
"/12345" true

Я ищу общее решение, которое будет работать для любого regx без перезаписи всего регулярного выражения.

Я рассмотрел следующие Как отрицать все регулярное выражение? с использованием (?! Шаблона), но это, похоже, не работает для меня.

Следующий regx

(?!/(.{0,4}))

возвращает следующее:

"/1234" false
"/12" false
"/" false
"" true
"1234" false
"/12345" false

, что мне не нужно. Любая помощь будет оценена по достоинству.

10
задан Community 23 May 2017 в 11:53
поделиться