У меня есть несколько строк, которые могут содержать определенные шаблоны. В частности, следующие 3.
Начинается с (-
, за которым следуют 10 цифр, затем )
.
например:.
(- 1234567890)
Начинается с (
, заканчивается )
и может содержать 1 или более символов, но NO пробел.
например:.
(ABC) или (AF33) или (2345)
Начинается с (
, заканчивается )
и может содержать 1 или более символов, ВКЛЮЧАЯ пробелы.
например:.
(Некоторая строка)
Строки, с которыми я работаю, могут содержать ноль или более шаблонов, указанных выше. Мое требование должно соответствовать ТОЛЬКО второму сверху в данной строке, и я хотел бы иметь возможность использовать Regex
класс в C #.
Например, скажем, у меня есть пять различных строк.
Это случайный текст.
Это некоторый (ABC) случайный (-1234567890) текст.
Это некоторый (XY12) случайный (-1234567890) текст.
Это некоторый (содержит пробел) случайный (-1234567890) текст.
Это некоторый () случайный текст.
Мой Regex
должен соответствовать только 2-й и 3-й строкам из приведенного выше списка.
Пока мне удалось написать следующее регулярное выражение, исключающее строки 1 и 5.
.*\((?!\-).+\).*
Это соответствует 2-й, 3-й, И 4-й строки выше. Теперь я не уверен, как я могу получить его, чтобы исключить 4-й, который содержит пробелы в скобках. Я знаю, что \S
обнаруживает пробелы, но как я могу сказать ему обнаруживать строки, которые не содержат пробелов только в скобках, которые не содержат -
после первого (
?
РЕДАКТИРОВАТЬ 1:
В моих строках никогда не будет вложенных скобок.
РЕДАКТИРОВАТЬ 2:
Вот Regex Tester .