Как перейти к частичной замене соответствующего регулярного выражения?

#regex

#регулярное выражение

Вопрос:

У меня есть текст, выглядящий так: «некоторые тексты (blabla) перед (1) некоторые тексты после (2) текст (3) текст (4) текст»

Я хочу удалить все «(» только тогда, когда это является частью «(number)», чтобы получить это:

«некоторые тексты (blabla) перед 1) некоторые тексты после 2) текст 3) текст 4) текст»

Жирным шрифтом выделен текст, получающий запрошенное изменение. Обратите внимание, что часть (blabla) не должна рассматриваться.

Каким будет правильное регулярное выражение для перехода к этим заменам?

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

1. Какой язык или инструмент вы используете?

2. C #, но Ник уже поделился правильным регулярным выражением. В любом случае спасибо

Ответ №1:

Предполагая, что ваш язык регулярных выражений поддерживает предварительные просмотры, вы можете сопоставить a ( , за которым следует некоторое количество цифр и закрытие ) , и заменить ( на пустую строку. Регулярное выражение:

 ((?=d ))
 

Демонстрация на regex101

Если он не поддерживает предварительные просмотры, вы можете записать цифры и закрытие ) , а затем заменить совпадение этой группой захвата:

 ((d ))
 

Демонстрация на regex101