Java - вопрос о регулярных выражениях - PullRequest
2 голосов
/ 14 июня 2010

Я новичок в регулярных выражениях.Я хочу использовать функцию Java Java replaceAll () для замены любых комментариев CSS в строке.

В основном я хочу использовать регулярное выражение для поиска всего, что окружено "/*" и "*/" изамените его на "".

Ответы [ 4 ]

2 голосов
/ 14 июня 2010

Один пример, где простое регулярное выражение терпит неудачу:

body { font-family: "/* this is not a comment */"; }

Но если вас не волнуют эти случаи, вы можете просто пойти с этим:

str.replaceAll("/\\*.*?\\*/", "");

матч начинается с первого /*, который он находит, а затем ищет следующий */, с минимальным количеством символов между ними (.*?).

2 голосов
/ 14 июня 2010

Это не может быть сделано. В большинстве ситуаций вы можете найти большинство комментариев с регулярными выражениями, но CSS не является регулярной грамматикой, поэтому вы не можете найти все случаи с регулярными выражениями.

1 голос
/ 14 июня 2010

Возможно, вы захотите запустить javascript через один из множества доступных минимизаторов javascript / CSS.Среди других приемов, чтобы сделать его меньше, он также удаляет комментарии.

0 голосов
/ 14 июня 2010

Я предлагаю использовать для этого YUI компрессор . Скачайте JAR, поместите в classpath и используйте его следующим образом:

BufferedReader reader = null;
BufferedWriter writer = null;
try {
    reader = new BufferedReader(new InputStreamReader(new FileInputStream("/path/to/original.css"), "UTF-8"));
    writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("/path/to/compressed.css"), "UTF-8"));
    new CssCompressor(reader).compress(writer, -1);
} finally {
    if (writer != null) try { writer.close(); } catch (IOException logOrIgnore) {}
    if (reader != null) try { reader.close(); } catch (IOException logOrIgnore) {}
}

Однако он не только удаляет комментарии, но и минимизирует CSS. Не уверен, что это соответствует требованиям, но также имеет свои преимущества. Мы используем его здесь во время автоматизированного развертывания веб-приложения.

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