Perge regex соответствует точному слову [duplicate]

Атрибуты - это, по сути, бит данных, которые вы хотите присоединить к вашим типам (классы, методы, события, перечисления и т. д.).

Идея заключается в том, что во время выполнения некоторые другие типы / рамки / инструмент будет запрашивать ваш тип для информации в атрибуте и действовать на него.

Так, например, Visual Studio может запрашивать атрибуты стороннего элемента управления, чтобы выяснить, какие свойства элемента управления должны появляться в панель свойств во время разработки.

Атрибуты также могут использоваться в аспектно-ориентированном программировании для ввода / манипулирования объектами во время выполнения на основе атрибутов, которые их украшают, а также добавления валидации, ведения журнала и т. д. к объектам без влияя на бизнес-логику объекта.

1
задан rra 24 March 2013 в 19:39
поделиться

2 ответа

\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(^)
7
ответ дан Wiktor Stribiżew 22 August 2018 в 06:58
поделиться
  • 1
    +1 для поиска. – Boris the Spider 24 March 2013 в 19:25
  • 2
    @BoristheSpider у вас есть версия этого, которая может работать в JavaScript? – Anand Sainath 25 April 2018 в 13:49

\b означает (?:(?<!\w)(?=\w)|(?<=\w)(?!\w)). Который соответствовал бы положениям между буквами и @.

Вы можете написать:

(?<!\S)[A-Za-z]+(?!\S)

(?!\S) эквивалентно (?=\s|$).

5
ответ дан Qtax 22 August 2018 в 06:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: