2015-02-02 6 views
1

У меня проблема с регулярным выражением. Я пытаюсь найти комбинацию буквы и цифры/периода/дефиса. Поэтому он всегда начинается с заглавной буквы, за которой следует либо цифра, либо период, либо дефис, а затем пробел. Таким образом, все они должны работатьРегулярное число ИЛИ период

  • D7
  • A.
  • H-

Но они не должны

  • GJ
  • G6. (Нет пространство аф тер вторые пары)

На данный момент я пытаюсь это без успеха

[A-Z]{1}\d{1}|\.\s 
+0

'[A-Z] {1} \ d {1} | \. \ S' –

+0

с оператором' follow a space' вы имеете в виду пробельный символ или любой символ, представленный '\ s'? Потому что это означает пробел, вкладку или ввод символов. –

ответ

1

Вам нужен класс символов:

(?<= |^)[A-Z][\d.-](?= |$) 

См demo

Малой FYI: A дефис в начале или конце символьного класса - это буквальный дефис (не диапазон).

Другие второстепенные FYI: квантор {1} является излишним/подразумеваемым - неважно, добавьте его, так что не нужно (регулярное выражение достаточно сложно читать).

+1

@Jorge это была опечатка - мое зрение не так уж велико:/Исправлено сейчас - спасибо. – Bohemian

+0

Блестящий, первый, похоже, работает. Я немного изменил его, чтобы добавить пробел в конце '[AZ] [\ d .-] \ s' –

+0

@NickPrice Помните, что управляющий символ' \ s' означает не только пространство, но также означает ввод или символ табуляции, поэтому ответ, предоставленный Богемией (первый), не нуждается в каких-либо изменениях, так как он уже содержит пространство в конце регулярного выражения. –

 Смежные вопросы

  • Нет связанных вопросов^_^