20.06.2014 / 04:35 | |
samogost Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| JSBmanD, $files=scandir('/tmp'); эта функция возвращает список файлов и каталогов в данной папке.
Изменено samogost (20.06 / 04:35) (всего 1 раз) |
20.06.2014 / 12:20 | |
HoldFast Пользователь Сейчас: Offline
Имя: Андрей Откуда: Великие Луки Регистрация: 18.04.2011
| А, сорри, я не внимательный
__________________
Да, детка, я - Король Ящериц!!! |
20.06.2014 / 13:50 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| А что означает знак вопроса и равно в этом выражении? $regexp = "/(\"(?=[^\"\n]*\w)[^\"\n]+\"|'(?=[^'\n]*\w)[^'\n]+')/";
Изменено Naik (20.06 / 13:54) (всего 3 раза) |
20.06.2014 / 14:16 | |
Ксакеп Модератор форума Сейчас: Offline
Регистрация: 20.06.2012
| Для самопроверки: http://regex101.comЧто-то вроде проверки условия, что далее находится подстрока, указанная после знака равенства. Но вообще, не думаю, что эта задача решается с использованием регулярок. Изменено Ксакеп (20.06 / 14:18) (всего 1 раз) |
20.06.2014 / 15:01 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| Вобщем с помощью гугла написал такое $regexp = "/\"(?=[^\"\n]*)[^\"\n]*\"|'(?=[^'\n]*)[^'\n]*'/";
Находит строки 'abc' и "abc" нормально, осталось экранирование как-то распознать Еще нужно распознавание коментов исправить, сейчас такое $exp = "/\\*(?:.|[\\n\\r])*?\\*/|//.*|#.*";
все находит нормально, кроме $string = "trylala http://annimon.com";//annimon.com определяет комментарием Изменено Naik (20.06 / 15:07) (всего 1 раз) |
20.06.2014 / 15:24 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| Naik, кинь примеры которые нужно парсить, а которые нет. Как по мне ты юзаешь через чур раздутые регулярки.
|
20.06.2014 / 16:12 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| web_demon, все возможные скрипты, для подсветки кода, вот код на java, которым разбираю пхп-код Открыть спойлер Закрыть спойлер package ua.naiksoftware.phprunner.editor.language;
import java.util.regex.*;
import ua.naiksoftware.phprunner.editor.*;
public class PHP extends Language {
private static final PatternColorPair keywords = new PatternColorPair(Pattern.compile(
"\\b((a(bstract|nd|rray|s))|(c(a(llable|se|tch)|l(ass|one)|on(st|tinue)))|"
+ "(d(e(clare|fault)|ie|o))|(e(cho|lse(if)?|mpty|nd(declare|for(each)?|if|switch|while)|val|x"
+ "(it|tends)))|(f(inal|or(each)?|unction))|(g(lobal|oto))|(i(f|mplements|n(clude(_once)?|"
+ "st(anceof|eadof)|terface)|sset))|(n(amespace|ew))|(p(r(i(nt|vate)|otected)|ublic))|"
+ "(re(quire(_once)?|turn))|(s(tatic|witch))|(t(hrow|r(ait|y)))|(u(nset|se))|"
+ "(__halt_compiler|break|list|(x)?or|var|while))\\b", Pattern.CASE_INSENSITIVE), SourceEditor.COLOR_KEYWORD);
private static final PatternColorPair dividers = new PatternColorPair(Pattern.compile("\\[|\\]|\\+|\\-|\\<|\\>|\\|\\!|\\&|\\||=|\\)|\\(|\\}|\\{|\\*|\\?php|\\?\\>|::|\\!"), SourceEditor.COLOR_BUILTIN);
private static final PatternColorPair builtins = new PatternColorPair(Pattern.compile(
"\\b(md5|query|real_escape_string|strval|intval|strlen|header|trim|abs|define|"
+ "session_start|session_name|strpos|print|print\\_r|printf|substr|htmlspecialchars)\\b", Pattern.CASE_INSENSITIVE), SourceEditor.COLOR_BUILTIN);// and other 1800th :)
private static final PatternColorPair vars = new PatternColorPair(Pattern.compile("\\$[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*"), SourceEditor.COLOR_VAR);
private static final PatternColorPair literals = new PatternColorPair(Pattern.compile(
"\\b(\\d*[.]?\\d+)\\b|(\"(?=[^\"\n]*)[^\"\n]*\"|'(?=[^'\n]*)[^'\n]*')|true|false"), SourceEditor.COLOR_LITERAL);
private static final PatternColorPair comments = new PatternColorPair(Pattern.compile(
"/\\*(?:.|[\\n\\r])*?\\*/|//.*|#.*"), SourceEditor.COLOR_COMMENT);
private static final PatternColorPair[] patterns = new PatternColorPair[] {keywords, dividers, builtins, vars, literals, comments};
public PatternColorPair[] getPatternColorPairs() {
return patterns;
}
}
Изменено Naik (20.06 / 16:22) (всего 2 раза) |
20.06.2014 / 18:17 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| Naik, это на js, но ты поймешь.
__________________
знает толк
Прикрепленные файлы: syntaxhighlight(…).zip (174.32 кб.) Скачано 17 раз |
20.06.2014 / 20:55 | |
samogost Пользователь Сейчас: Offline
Имя: Сергей Откуда: Липецк Регистрация: 05.11.2013
| Скажите, насколько сложно сделать свой небольшой движок на пхп?
|
20.06.2014 / 21:28 | |
Naik Пользователь Сейчас: Offline
Имя: %name% Регистрация: 14.03.2010
| vl@volk, Что-то ничего не понимаю, экранирование подсвечивает правильно, а сами выражения вроде не предусматривают этого (в java вообще срабатывает на весь текст — там же точка..) — doubleQuotedString : /"([^\\"\n]|\\.)*"/g singleQuotedString : /'([^\\'\n]|\\.)*'/g
Изменено Naik (20.06 / 21:30) (всего 1 раз) |