воскресенье, 29 ноября 2009 г.

Regex и файловая маска

Часто надо было отфильтровать файлы по некоему общему признаку в их имени. Для этого можно использовать регулярные выражения. Писать регулярные выражения в конфиг-файле достаточно неудобно, да и объяснять пользователям, что будет искать то или иное регулярное выражение еще сложнее. Поэтому проще использовать обычную файловую маску, а из нее уже в программе получать нужное регулярное выражение:

public String getRegexFromFileMask(String fileMask) {
  String regexStr = fileMask.replaceAll("[*]{1}", "[a-zA-Z_0-9]{0,}");
  regexStr = regexStr.replaceAll("[\\.]{1}", "\\\\.");
  regexStr = regexStr.replaceAll("\\?", "[0-9]{1}");
  return regexStr;
}


* This source code was highlighted with Source Code Highlighter.

Таким образом мы, например:
из строки "log*.txt" получаем "log[a-zA-Z_0-9]{0,}\.txt"

* This source code was highlighted with Source Code Highlighter.

суббота, 28 ноября 2009 г.

Подсветка синтаксиса

Очень полезная вещь, если нужно опубликовать красивый читабельный код с подсвеченным синтаксисом, со всеми отступами и правильным шрифтом. Открываем эту ссылку:
http://source.virtser.net/
Вставляем в окно (либо печатаем прямо в нем же) нужный нам код:
class MyClass {
  private String str;
  MyClass() {
  }
  public void setStr(String aStr) {
    str = aStr;
  }
  public String getStr() {
    return str;
  }
}

нажимаем кнопочку "Highlight code" и копипипастим результирующий хтмл в блог или куда там нам надо:
class MyClass {
 private String str;
 MyClass() {
 }
 public void setStr(String aStr) {
    str = aStr;
 }
 public String getStr() {
    return str;
 } 
}


* This source code was highlighted with Source Code Highlighter.

Технология hibernate

Толково написано тут:
http://habrahabr.ru/blogs/java/29694

И тут:
http://www.nestor.minsk.by/kg/2005/32/kg53209.html