Атрибуты - это, по сути, бит данных, которые вы хотите присоединить к вашим типам (классы, методы, события, перечисления и т. д.).
Идея заключается в том, что во время выполнения некоторые другие типы / рамки / инструмент будет запрашивать ваш тип для информации в атрибуте и действовать на него.
Так, например, Visual Studio может запрашивать атрибуты стороннего элемента управления, чтобы выяснить, какие свойства элемента управления должны появляться в панель свойств во время разработки.
Атрибуты также могут использоваться в аспектно-ориентированном программировании для ввода / манипулирования объектами во время выполнения на основе атрибутов, которые их украшают, а также добавления валидации, ведения журнала и т. д. к объектам без влияя на бизнес-логику объекта.
\b
является границей слов.
Итак, \b
аналогичен [^a-zA-Z0-9_]
, т. е. \b
будет проверять что-либо, кроме word
. Вы можете вместо этого используйте это регулярное выражение
(?<=\s|^)[a-zA-Z]+(?=\s|$)
-------- --------- ------
| | |->match only if the pattern is followed by a space(\s) or end of string/line($)
| |->pattern
|->match only if the pattern is preceded by space(\s) or start of string\line(^)
\b
означает (?:(?<!\w)(?=\w)|(?<=\w)(?!\w))
. Который соответствовал бы положениям между буквами и @
.
Вы можете написать:
(?<!\S)[A-Za-z]+(?!\S)
(?!\S)
эквивалентно (?=\s|$)
.