Я использую следующее регулярное выражение
^[a-zA-Z0-9\',!;\?\$\^:\\\/`\|~&\" @#%\*\{}\(\)_\+\.\s=-]{1,1000}$
Я знаю, что это уродливо, но до сих пор он служит своей цели, кроме того, что обратная косая черта не разрешена, как я думаю, она должна, потому что она ускользнула, я также пробовал \\
вместо того, \\\
но те же результаты. Любые идеи?
Ответы:
Если вы помещаете это в строку в программе, вам может действительно потребоваться использовать четыре обратной косой черты (потому что синтаксический анализатор строки удалит две из них при "деэкранировании" для строки , а затем регулярному выражению потребуется две для экранированная обратная косая черта регулярного выражения).
Например:
интерпретируется как ...
интерпретируется как ...
интерпретируется как регулярное выражение, которое соответствует одной обратной косой черте.
В зависимости от языка вы можете использовать другую форму цитирования, которая не анализирует escape-последовательности, чтобы избежать использования их большого количества - например, в Python:
Знак
r
перед кавычками делает его необработанной строкой, которая не анализирует escape-символы обратной косой черты.источник
new RegExp('\\\\\\d');
.Если это не литерал, вы должны использовать его,
\\\\
чтобы получить,\\
что означает экранированную обратную косую черту.Это потому, что есть два представления. В строковом представлении вашего регулярного выражения у вас есть
"\\\\"
, что и отправляется парсеру. Парсер увидит,\\
что он интерпретирует как действительную обратную косую черту с экранированием (которая соответствует одной обратной косой черте).источник
Обратная косая черта
\
- это escape-символ для регулярных выражений. Следовательно, двойная обратная косая черта действительно будет означать одинарную буквальную обратную косую черту.\ (backslash) followed by any of [\^$.|?*+(){} escapes the special character to suppress its special meaning.
ссылка: http://www.regular-expressions.info/reference.html
источник
Из http://www.regular-expressions.info/charclass.html :
На каком языке вы пишете регулярное выражение?
источник
Это решение устранило мою проблему при замене тега br на '\ n'.
источник