В основном предупреждение состоит в том, что при передаче энергозависимого поля ссылкой код вызова не знает для обработки ее энергозависимым способом. Для Взаимно блокируемого. Инкремент, который, вероятно, не имеет значения, из-за природы метода - но тогда Вам не нужна переменная, чтобы быть энергозависимы так или иначе , если Вы используете, Взаимно блокировался.
В целом, я думаю, что постарался бы не смешивать два - если Вы используете, Взаимно блокировался, сделайте это везде (использование Interlocked.CompareExchange(ref counter, 0, 0)
для чтения его). Я не могу сказать, что использую энергозависимый очень часто, лично. Для простых счетчиков I мог бы Взаимно блокируемое использование, но я, более вероятно, буду использовать блокировку для большинства задач.
Непонятно, о чем вы. Если вам нужен символ в начале и двойные цифры в конце, вы можете использовать
^[A-Za-z].*\d\d$
. Если вам нужен только дефис, а затем одиночная цифра, используйте:
^[A-Za-z].*-\d$
Если вам все равно сколько цифр (одна или несколько), но должен быть дефис, используйте:
^[A-Za-z].*-\d+$
Если это не то, что вы хотите, дайте дополнительную информацию ... первое предложение вашего вопроса на самом деле не сравняться с остальными.
Для вашего примера
egrep -v "^(ABC)-(0|1)$"
- это ответ. В общем случае посмотрите ответ Джона
^
отмечает начало шаблона, $
конец. |
означает или
Если вы пытаетесь сопоставить слова, используйте \ b
в качестве разделителя слов, например:
\ b [A-Za-z] - \ d + \ b
из эта ссылка :
\ b
- соответствует позиции между символом слова (все, что соответствует\ w
) и символ, не являющийся словом (все, что соответствует[^ \ w]
или\ W
). как в начале и / или в конце строки, если первый и / или последний символы в строке - это символы слов.