Регулярное выражение соответствует определенному слову со знаком доллара?

#regex

Вопрос:

У меня есть такие предложения, как:

$COIN has a new price target increase to $400

Я хочу только $COIN соответствовать регулярному выражению, мне интересно, как это сделать?

Если я сделаю что-то подобное .*\$.* , это тоже совпадет $400 . Я просто хотел бы соответствовать $SOMEWORDNOSPACE единственному. Возможно ли это?

Спасибо

Комментарии:

1. Попробуйте с \$[A-Z] b

Ответ №1:

Если все, что после $ до конца слова, является заглавной буквой: $[A-Z]

Это будет соответствовать значению $ ( $ ), а затем будет соответствовать заглавным буквам от 1 до бесконечности [A-Z] . Совпадение прекращается, когда символ не вписывается в диапазон A-Z, поэтому b в этом нет необходимости. Если совпадение не может начаться в середине предложения, с которого вы могли бы начать, B чтобы оно начиналось при переключении символа слова на знак доллара, в этом случае регулярное выражение будет B$[A-Z]

Ответ №2:

Воспользуйся

 (?<!S)$[A-Z] (?!S)
 

См. Доказательство

объяснение

 --------------------------------------------------------------------------------
  (?<!                     look behind to see if there is not:
--------------------------------------------------------------------------------
    S                       non-whitespace (all but n, r, t, f,
                             and " ")
--------------------------------------------------------------------------------
  )                        end of look-behind
--------------------------------------------------------------------------------
  $                       '


--------------------------------------------------------------------------------
[A-Z] any character of: 'A' to 'Z' (1 or more
times (matching the most amount possible))
--------------------------------------------------------------------------------
(?! look ahead to see if there is not:
--------------------------------------------------------------------------------
S non-whitespace (all but n, r, t, f,
and " ")
--------------------------------------------------------------------------------
) end of look-ahead