Неизвестный модификатор '(' в регулярном выражении [дубликат]

Я использую пакет frontail из npm.

npm i frontail -g
frontail /var/log/syslog

посещает http://127.0.0.1:9001 для просмотра журналов

Источник: https://github.com/mthenw/frontail

Это может быть не точный ответ на вопрос (для встраивания html-страницы), но он решает проблему многих пользователей, которые ищут только для

Отображает содержимое файла журнала по мере его обновления

4
задан Krimson 8 August 2012 в 11:08
поделиться

2 ответа

Для вашего регулярного выражения нужны регулярные выражения

<?php
if(preg_match("/[A-Za-z0-9\-_]*/",'vidhu_1911')){
    echo "it matched!";
}else{
    echo "fail to match";   
}
?>

. В вашем квадрате квадратные скобки интерпретируются как разделители регулярных выражений, а символы после разделителя замыкания являются модификаторами регулярного выражения. Таким образом, * рассматривался как модификатор, но он не является допустимым модификатором.

Подробнее см. Разделители на php.net

11
ответ дан stema 19 August 2018 в 05:04
поделиться
  • 1
    хорошо, я сделал это. Но это не сработает. На этот раз это не дает ошибки, но похоже, что она почти соответствует каждой строке, в которую я вставляю. Как будто это не должно совпадать с vidhu 1911 & quot; поскольку в нем есть пространство. но это так. Любые идеи, почему? – Krimson 8 August 2012 в 12:42
  • 2
    Это другая проблема. Я тебе кое-что скажу? Он не будет соответствовать почти каждой строке, он будет соответствовать каждой строке. Если вы хотите сопоставить только строки, состоящие из только этих символов, вам необходимо привязать ваше регулярное выражение к началу и концу строки /^[A-Za-z0-9\-_]*$/. В противном случае он будет соответствовать любой подстроке и скажет: «Да, я нашел письмо!». Имейте в виду, он также будет соответствовать пустой строке! потому что вы использовали *, если вы этого не хотите, используйте квантификатор + для совпадения, по крайней мере, с символом. – stema 8 August 2012 в 13:00

Вы должны заключить регулярное выражение в косые черты:

<?php
if(preg_match("/[A-Za-z0-9\-_]*/",'vidhu_1911')){
    echo "it matched!";
}else{
    echo "fail to match";   
}
?>
2
ответ дан rsplak 19 August 2018 в 05:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: