Я не понимаю, почему мой шаблон соответствует определенным строкам в поиске / замене IntelliJ.
Я собираю подборку шаблонов REGEX, полезных для поиска / замены определенных стандартов кодирования, таких как переключение нулевых проверок, чтобы иметь нулевое значение на левой стороне. В этом случае я пытаюсь настроить конвертер isEmpty, который распознает сравнения .size или .length в 0, как в if(foo.size() == 0)
или if(zig.zag().length == 0)
Тем не менее, мой шаблон
((?:\w+\(?\)?\.)+)\blength\(?\)?|\bsize\(\) ?== ?0
соответствует foo.length
как в
for(int i=0; i<foo.length; i++)
Я бы хотел, чтобы этот шаблон соответствовал проверкам пустой строки / -коллекции, таким как foo.length == 0
или bar.size() == 0
, чтобы преобразовать их в использование isEmpty () (т.е. foo.isEmpty()
). Но не для соответствия другим случаям, таким как случай выше. Я также хотел бы, чтобы этот REGEX был полезен как для пустой строки , так и для проверки пустой коллекции.