Методы класса действуют на экземпляр класса, называемый объектом.
class Example
{
public int data = 0; // Each instance of Example holds its internal data. This is a "field", or "member variable".
public void UpdateData() // .. and manipulates it (This is a method by the way)
{
data = data + 1;
}
public void PrintData() // This is also a method
{
Console.WriteLine(data);
}
}
class Program
{
public static void Main()
{
Example exampleObject1 = new Example();
Example exampleObject2 = new Example();
exampleObject1.UpdateData();
exampleObject1.UpdateData();
exampleObject2.UpdateData();
exampleObject1.PrintData(); // Prints "2"
exampleObject2.PrintData(); // Prints "1"
}
}
Если реализация регулярного выражения поддерживает утверждения предварительного просмотра или просмотра назад , вы можете использовать следующее:
Использование отрицательного утверждения упреждающего просмотра:
\ b (?! (?: cat | dog | овца) \ () \ w + \ (
Использование утверждения отрицательного просмотра назад:
\ b \ w + \ ((?
Я добавил привязку \ b
, которая отмечает границу слова . Таким образом, catdog (
будет сопоставлен, хотя он содержит dog (
.
). Но хотя утверждения с прогнозированием более широко поддерживаются реализациями регулярных выражений, регулярное выражение с утверждением просмотра назад является более эффективен, поскольку он проверяется только в том случае, если предыдущее регулярное выражение (в нашем случае \ b \ w + \ (
) уже соответствовало. Тем не менее, предварительное утверждение будет проверено до фактического регулярного выражения будет соответствовать. Таким образом, в нашем случае утверждение прогнозирования проверяется всякий раз, когда совпадает \ b
.
Вы действительно нуждаетесь в этом в одном регулярном выражении? Если нет, то простейшая реализация - это всего лишь два регулярных выражения: одно для проверки того, что вы не соответствуете ни одному из ваших запрещенных слов, а другое - для соответствия вашему \ w +, объединенное логическим И.