Я пытаюсь сопоставить строку, используя регулярное выражение, и я очень близок к тому, чтобы она работала так, как я хочу.
Допустим, у меня есть строка 5A(test1),4B,3C(test2)
Первое, что я делаю, это разбиваю строку на запятые, поэтому я получаю 3 строки в массиве.
- 5А (тест1)
- 4B
- 3С (тест2)
Теперь я хочу получить следующую информацию; цифра, буква и содержание в скобках. Но скобки необязательны.
Вот моя выкройка ([1-9][0-9]*)([AaBbCcIiFfPpSs]+)(\(.*\))?
Это работает, за исключением того, что включает круглые скобки. поэтому я получаю
5 A (test1)
когда мне нужно
5 A test1
Я также пробовал ([1-9][0-9]*)([AaBbCcIiFfPpSs]+)\(([^)]*)\)?
Но это не соответствует строкам без круглых скобок, поэтому
5A (test1) и 3C (test2) совпадают, а 4B — нет.
Любая помощь будет оценена.