Ошибка, вызванная RegEx? - PullRequest
       1

Ошибка, вызванная RegEx?

0 голосов
/ 18 октября 2011

Я использую систему, где мне нужно вводить сотни выражений RegEx. Я недавно изменил несколько вещей и получаю следующую ошибку:

java.lang.RuntimeException:? + * Ничего не следует в выражении

Я понятия не имею, что это значит, и буду очень признателен за любые указания на то, что я должен искать, чтобы это исправить.

Большое спасибо:)

Кейти

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Очевидное объяснение состоит в том, что у вас есть регулярное выражение, которое начинается с метасимвола '?', '+' или '*'.Может быть, это следовало избежать.Может быть, вы случайно удалили предыдущие вещи, которые «количественно» определены мета-символом.

У меня есть '*' в начале некоторых выражений - это плохо?

Да.Если предполагается, что он соответствует буквальному символу звездочки, ему должен предшествовать '\', чтобы избежать его.(И, как отметил Феликс Клинг, '\' сам должен быть экранирован, если регулярное выражение встроено в строковый литерал Java.)

Должен ли я ставить '.*' (то есть точкавместо звездочки?

Зависит от того, что вы хотите, чтобы регулярное выражение соответствовало этой точке.'.*' означает «нетерпеливо сопоставлять ноль или более символов».Если это то, что вы имеете в виду, это то, что вы должны использовать.

0 голосов
/ 18 октября 2011

Это означает, что у вас есть квантификатор (+,? Или *), который ничего не определяет. Полагаю, вы, возможно, забыли экранировать один из этих символов (с \), пытаясь сопоставить его.

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