Регулярное выражение для соглашения об именовании PR

#regex #string #github

#регулярное выражение #строка #github

Вопрос:

Я хочу написать регулярное выражение для обеспечения соблюдения соглашения об именовании PR, например:

[JIRA-1234] My PR description name

Где 1234 может быть любое количество цифр любой длины и My PR description name может быть любой строкой, если длина больше нуля.

Как я могу этого добиться? До сих пор я пытался:

^(?=[JIRA)(.*)(?=])[a-zA-Z]*

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

1.Нравится это? ^[JIRA-d ]s*w.* regex101.com/r/YSY88m/1

2. Вероятно, это может быть просто ^[JIRA-[0-9] ] . или ^[JIRA-[0-9] ] [^ ].*

3. возможно, это поможет: ^[JIRA- d ][sa-zA-Z] $ regex101.com/r/9lQSP0/1

4. Сработало ли какое-либо решение для вас?

Ответ №1:

Вы можете сопоставить часть JIRA, за которой следуют необязательные символы пробела, и начать хотя бы с одного символа слова, а остальная часть строки не будет совпадать с любыми символами пробела для имени описания.

 ^[JIRA-d ]s*w.*
  

Демонстрация регулярных выражений

Или сопоставьте символы с 0 пробелами без перевода строки, и если описание также может начинаться с другого символа, отличного от символа слова, вы можете сопоставить символ без пробелов, используя S

 ^[JIRA-d ][^Srn]*S.*
  

Демонстрация регулярных выражений

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

1. s *w. * он также будет принимать число .. но в соответствии с op это должна быть строка длиной более 0

2. @ShekharKhairnar Эта часть s*w.* соответствует по крайней мере одному символу слова и поэтому должна быть длиннее 0, и она не будет соответствовать только пробелам в качестве описания.

Ответ №2:

Вы можете попробовать с ^^[JIRA-d ](?:s{1}[a-zA-Z] ) $

[JIRA-d ] maches [JIRA-1234]

(?:s{1}[a-zA-Z] ) не захватывающая группа (одиночный пробел, за которым следует один или несколько символов) по крайней мере один или несколько раз

регулярное выражение 101 — демонстрация