Каков правильный шаблон RegEx для соответствия этому случаю? - PullRequest
1 голос
/ 19 июня 2019

Я пытаюсь, и с треском проваливаюсь, написать регулярное выражение, которое будет соответствовать всем следующим строкам с целыми числами в em. Я добавлю комментарии, чтобы указать, какие из них должны соответствовать.

"modelstub": "some-123908", // No match
"modelstub": "00432", // No match
"modelstub": "1607", // No match
"modelstub": 16-02, // No Match 
"modelstub": 1605, // Match!
"modelstub": 1604, // Match!
"modelstub": 1603, // Match!
"modelstub": "1-602", // No match

Пожалуйста, прости меня за то, что я использую ColdFusion. Поверь мне, никто не ненавидит меня больше, чем я.

Но вот что я попробовал: ("modelstub":+)[0-9]+

Полный код ссылки:

<cfset output = REReplace(output, '("modelstub":+)[0-9]+', '"modelstub": "$1"', "ALL")>

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

В шаблоне, который вы используете, вы повторяете : 1 или более раз, используя :+, и между двоеточием и двойной кавычкой отсутствует пробел.

Вы можете обновить свой шаблон до ("modelstub":) [0-9]+$, и тогда у вас будет группа захвата.

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

"modelstub": \d+,

Regex demo

Если здесь нет запятой, вы можете использовать:

"modelstub": \d+$

Regex demo

1 голос
/ 19 июня 2019

если в конце каждой строки есть запятая, тогда будет работать решение из @Thefourthbird. если нет, то попробуйте это: "modelstub": \d+$

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...