Я решил решить проблему, когда уровень сервиса использует Visual Studio IIS Express. Просто укажите, что 10.0.2.2:port не будет работать. Вместо того, чтобы возиться с IIS Express, как упоминалось в других сообщениях, я просто поставил прокси-сервер перед IIS Express. Например, apache или nginx. Nginx.conf будет выглядеть как
# Mobile API
server {
listen 8090;
server_name default_server;
location / {
proxy_pass http://localhost:54722;
}
}
. Затем андроид должен указывать на мой IP-адрес, как 192.168.x.x: 8090
Понятие, что regex не поддерживает инверсию, соответствующую, не совсем верно. Можно подражать этому поведению при помощи отрицательного взгляда-arounds:
^((?!hede).)*$
regex выше будет соответствовать любой строке, или строка без разрыва строки, не содержащий (sub) представляет 'Эде' в виде строки. Как упомянуто, это не что-то, что regex "хорош" в (или должен сделать), но тем не менее, это возможно.
И если необходимо соответствовать символам разрыва строки также, используйте эти ТОЧКА - ВЕСЬ модификатор (запаздывание s
в следующем шаблоне):
/^((?!hede).)*$/s
или использование это встраивает:
/(?s)^((?!hede).)*$/
(где эти /.../
regex разделители, т.е. не часть шаблона)
, Если ТОЧКА - ВЕСЬ модификатор не доступен, можно подражать тому же поведению с классом символов [\s\S]
:
/^((?!hede)[\s\S])*$/
строка А является просто списком n
символы. Прежде, и после каждого символа, существует пустая строка. Так список n
символы будут иметь n+1
пустые строки. Рассмотрите строку "ABhedeCD"
:
┌──┬───┬──┬───┬──┬───┬──┬───┬──┬───┬──┬───┬──┬───┬──┬───┬──┐
S = │e1│ A │e2│ B │e3│ h │e4│ e │e5│ d │e6│ e │e7│ C │e8│ D │e9│
└──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┘
index 0 1 2 3 4 5 6 7
, где эти e
пустые строки. regex (?!hede).
смотрит вперед, чтобы видеть, нет ли никакой подстроки "hede"
, чтобы быть замеченной, и если это так (таким образом, что-то еще замечено), затем эти .
(точка) будет соответствовать любому символу кроме разрыва строки. Взгляд-arounds также называют утверждения нулевой ширины , потому что они не делают , используют любые символы. Они только утверждают/проверяют что-то.
Так, в моем примере, каждая пустая строка сначала проверена, чтобы видеть, нет ли никакого "hede"
вперед, прежде чем символ будет использован эти .
(точка). regex (?!hede).
сделает это только однажды, таким образом, он будет перенесен в группу и повторил нуль или больше раз: ((?!hede).)*
. Наконец, запуск - и конец входа привязывается, чтобы удостовериться, что весь вход используется: ^((?!hede).)*$
, Как Вы видите, вход "ABhedeCD"
перестанет работать, потому что на [1 122], сбои regex (?!hede)
(там "hede"
вперед!).
, Если Вы просто используете его для grep, можно использовать grep -v hede
для получения всех строк, которые не содержат Эде.
ETA, О, перечитывая вопрос, grep -v
, вероятно, что Вы подразумевали "под опциями инструментов".
Вот хорошее объяснение из почему не легко инвертировать произвольный regex. Я должен согласиться с другими ответами, хотя: если это - что-нибудь кроме гипотетического вопроса, то regex не является правильным выбором здесь.
volatile
средства. Я никогда не видел volatile
используемый на статическом элементе данных прежде, и Ваша ссылка Википедии не указывает, существуют ли различные характеристики volatile
статичными по сравнению с volatile
нестатичный. Кажется, что большинство людей в наше время использует synchronized
или java.util.concurrent
для создания вещей ориентированными на многопотоковое исполнение. Это не означает, что Ваше использование volatile
является неправильным. Однако это - одна необычная вещь, которую я вижу в Вашей реализации, и поэтому кандидат на то, чтобы так или иначе быть источником Вашей трудности.
– CommonsWare
24 February 2011 в 23:39
Другая опция состоит в том, что для добавления положительного предвидения и проверки, если бы hehe
находится где-нибудь во входной строке, то мы инвертировали бы это с выражением, подобным:
^(?!(?=.*\bhede\b)).*$
с границами слова.
<час>выражение объяснено на верхней правой панели regex101.com , если бы Вы хотите исследовать/упростить/изменить его, и в эта ссылка , можно смотреть, как это соответствовало бы против некоторых демонстрационных исходных данных, если Вам нравится.
<час>jex.im визуализирует регулярные выражения: