Объедините несколько регулярных выражений в одно - PullRequest
0 голосов
/ 05 октября 2019

учитывая следующие примеры строк, как можно выделить выделенные части с помощью регулярных выражений?

  • x => x. One.Two[0].Three.get_Item(0).Four[0].Five
  • x => x. One.Two[0].Three.get_Item(0).Four[0].Five.get_Item(0)
  • x => x. One.Two[0].Three.get_Item(0).Four[0].Five[0]
  • x => Преобразовать (x. One.Two[0].Three.get_Item(0).Four[0].Five)
  • x => Преобразовать (x. One.Two[0].Three.get_Item(0).Four[0].Five.get_Item(0))
  • x => Преобразовать (x. One.Two[0].Three.get_Item(0).Four[0].Five[0])
  • x => Преобразовать (x. One.Two[0].Three.get_Item(0).Four[0].Five, Объект)
  • x => Преобразовать (x. One.Two[0].Three.get_Item(0).Four[0].Five.get_Item(0), Объект)
  • x => Преобразовать (x. One.Two[0].Three.get_Item(0).Four[0].Five[0], Object)

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

это то, что у меня есть:

\.(.+)(?<!\d)\)$ и \.(.+), Object\) и \.(.+)

вот примеры данных для игры: https://regex101.com/r/jxqsQl/2

ценим любую помощь, которую вы можете оказать ...

1 Ответ

1 голос
/ 05 октября 2019

Это регулярное выражение будет делать то, что вы хотите. Он ищет несколько групп из . и слова, за которыми необязательно следуют цифры, заключенные в [] или ():

(?:\.\w+(?:[[(]\d+[)\]])?)+

Демонстрация на регулярном выражении regex101

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