Вы можете использовать одно из следующих выражений, чтобы соответствовать одной букве:
(?![\d_])\w
или
\w(?<![\d_])
Здесь я соответствую \w
, но проверьте, что [\d_]
не соответствует ни до, ни после этого.
Из документов:
(?!...)
Matches if ... doesn’t match next. This is a negative lookahead assertion. For example, Isaac (?!Asimov) will match 'Isaac ' only if it’s not followed by 'Asimov'.
(?<!...)
Matches if the current position in the string is not preceded by a match for .... This is called a negative lookbehind assertion. Similar to positive lookbehind assertions, the contained pattern must only match strings of some fixed length and shouldn’t contain group references. Patterns which start with negative lookbehind assertions may match at the beginning of the string being searched.
Я не знаю, возможно ли это, но вы могли бы реализовать свой собственный TrustManager, чтобы разрешить это соединение или этот CA. Вот основы.
Вы всегда можете вызвать KeyTool как процесс Runtime.exec (...)
.
Если вы хотите установить сертификат в хранилище ключей доверенного корня на настольном компьютере, вам потребуется разрешение на это. То же самое и с keytool , вам нужен пароль для доступа к хранилищу ключей доверенного корня. Если вы хотите быть быстрым и грязным, вы можете
KeyTool
class ( sun.security.tools .KeyTool
) Но ИМХО, если сертификат недействителен, то он не заслуживает доверия. Я бы сказал, что для этого есть веская причина.
IMHO, Sun не предоставила keytool через API, прежде всего, чтобы не дать разработчикам изменить набор доверенных центров сертификации. Я могу представить, как злоумышленники используют такой код для вставки собственных корневых сертификатов в хранилище доверенных сертификатов, компрометируя саму модель хранилища доверенных сертификатов.
Фактически, если вы посмотрите на источник класса KeyTool (пакет sun.security.tools ), он не только окончательный, но и имеет частный конструктор, не позволяющий любому вызывающему объекту создать экземпляр класса KeyTool из кода. KeyTool действительно имеет основной метод, что делает командную строку (и, следовательно, пользователя ОС), возможно, единственным способом, которым можно инициализировать KeyTool и взаимодействовать с ним.
Единственными (упрощенными) подходами, оставшимися, были бы: