У меня проблемы с Regex
, который, кажется, никогда не задавался здесь. Я должен заменить символ a
с последующим whitespace
(или без него), но обязательно за ним следует number
(число не должно заменяться).
У меня есть это регулярное выражение: [aA]\s.(?<=\d)*
и вот результат:
с использованием (?<=\d)*
Я хотел попытаться сопоставить, но не захватить число сразу после символа, следующего (или нет) из пробела, но, очевидно, это не работает, в том числе и потому, что \ d не включает идентификаторы. Идентификаторы могут представлять собой последовательность числовых или буквенно-цифровых символов без определенной длины, а также сортировку букв в том случае, если они были буквенно-цифровыми. Они могут быть A54N3
, Z4G78
или 8454
или 4AZ7
или 7
или A1
, 1A
. Комбинации всегда меняются.
Я бы хотел соответствовать ТОЛЬКО a
перед числом 8
(или любым другим числом, или идентификатором, таким как N574A
) и заменить этот символ на art
,но если оставить номер / идентификатор как есть, то результат должен быть: agricoltura n 6 sensi dell'art8
или agricoltura n 6 sensi dell'artN574A
, а если целевая строка была agricoltura n 6 sensi dell'a8
или agricoltura n 6 sensi dell'aN574A
, то (без пробелов) результат должен быть: agricoltura n 6 sensi dell'art8
илиagricoltura n 6 sensi dell'artN574A
Таким образом, общее правило должно быть: Match [aA] followed by an optional space then must be followed by a number or an identifier that must not be captured
Возможно ли сделать такую вещь? Какое может быть решение? Большое вам спасибо!
ОБНОВЛЕНИЕ
Использование шаблона \\b([aA])\\s*([A-Za-z]*\\d[\\dA-Za-z]*)\\b
, кажется, заменяет правильные значения, здесь - это демонстрационная версия