Попробуйте это при настройке libcurl
./configure --with-ssl --with-libssl-prefix=/usr/local/ssl
/usr/local/ssl
, где openssl содержит файлы заголовков и библиотеки
/usr/local/ssl/
├── bin
├── certs
├── include
├── lib
├── man
├── misc
├── openssl.cnf
└── private
String.contains не использует regex, таким образом, нет проблемы в этом случае.
, Где regex требуется, довольно отклоняющие строки с regex специальными символами, java.util.regex использования. Pattern.quote для выхода из них.
Regex использует символ обратной косой черты '\' для выхода из литерала. Учитывая, что Java также использует символ обратной косой черты, необходимо было бы использовать двойной bashslash как:
String S = "\\[hi"
, Который станет Строкой:
\[hi
, который будет передан regex.
Или если Вы только заботитесь о литеральной строке и не нуждаетесь в regex, Вы могли бы сделать следующее:
if (T.indexOf("[hi") != -1) {
Как сказал Tom Hawtin , необходимо заключить шаблон в кавычки. Можно сделать это двумя способами (редактирование: на самом деле три пути, как указано диастрофизм ):
Окружают строку "\Q" и "\E", как:
if (T.matches("\\Q" + S + "\\E"))
Использование Шаблон вместо этого. Код был бы чем-то вроде этого:
Pattern sPattern = Pattern.compile(S, Pattern.LITERAL);
if (sPattern.matcher(T).matches()) { /* do something */ }
Таким образом, можно кэшировать скомпилированный Шаблон и снова использовать его. При использовании того же regex несколько раз Вы почти наверняка хотите сделать это этот путь.
Примечание, что при использовании регулярных выражений, чтобы протестировать, является ли строка в большей строке, необходимо поместить.* в запуск и конец выражения. Но это не будет работать при заключении в кавычки шаблона так как он будет тогда искать фактические точки. Так, действительно ли Вы абсолютно уверены, что хотите использовать регулярные выражения?
Попробуйте Pattern.quote (Строка) . Это согласует что-либо, что имеет особое значение в строке.
Какая-либо конкретная причина не использовать String.indexOf () вместо этого? Тем путем это будет всегда интерпретироваться как обычная строка, а не regex.
T.contains () (согласно javadoc: http://java.sun.com/javase/6/docs/api/java/lang/String.html ), не использует regexes., содержит () делегатов в indexOf () только.
Так, нет НИКАКИХ regexes, используемых здесь. Вы думали о некотором другом Строковом методе?