анализ строки с разделителями с использованием регулярного выражения - PullRequest
0 голосов
/ 20 апреля 2020

Я анализирую текстовый файл, используя скрипт PowerShell. Часть содержимого имеет вид:

(1) first thing (2) other thing (that,has,details) (3) third thing: stuff (some details), first thing
(1) first thing (2) other thing (that,has,details) (3) third thing: stuff (some details), first thing (4) potentially (5) more (6) things (7) too

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

arr[0]="(1) first thing"
arr[1]="(2) other thing (that,has,details)"
arr[2]="(3) third thing: stuff (some details), first thing"

или

arr[0]="first thing"
arr[1]="other thing (that,has,details)"
arr[2]="third thing: stuff (some,details), first thing"

При сохранении гибкости решения для обработки дополнительных полей в будущем. Было бы невероятно, если бы я мог сохранить числа в отдельном массиве или иметь как числа, так и текст в двумерном массиве.

arr[0,0]="(1)"
arr[0,1]="first thing"
arr[1,0]="(2)"
arr[1,1]="other thing (that,has,details)"
arr[2,0]="(3)"
arr[2,1]="third thing: stuff (some,details), first thing"

Я пытаюсь заставить регулярное выражение делать это, но возникли некоторые проблемы. Не хотелось бы взламывать что-то вместе, потому что использование регулярных выражений было бы очень хорошо.

Спасибо за любую помощь.

1 Ответ

1 голос
/ 21 апреля 2020
\G(\(\d+\))\s+((?:[^\(]|\((?!\d+\)))*[^\(\s])(?:\s+|$)

https://regex101.com/r/fbvpic/1

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