将多个正则表达式合二为一

时间:2019-10-05 05:42:47

标签: regex

给出以下示例字符串,如何使用正则表达式提取突出显示的部分?

  • 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 => Convert(x。One.Two[0].Three.get_Item(0).Four[0].Five
  • x => Convert(x。One.Two[0].Three.get_Item(0).Four[0].Five.get_Item(0)
  • x => Convert(x。One.Two[0].Three.get_Item(0).Four[0].Five[0]
  • x => Convert(x。One.Two[0].Three.get_Item(0).Four[0].Five,Object)
  • x => Convert(x。One.Two[0].Three.get_Item(0).Four[0].Five.get_Item(0),Object)
  • x => Convert(x。One.Two[0].Three.get_Item(0).Four[0].Five[0],Object)

到目前为止,我能够提出几种不同的正则表达式模式,但理想情况下,我希望有一个可以处理上述所有情况的正则表达式。

这是我到目前为止所拥有的:

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

以下是示例数据:https://regex101.com/r/jxqsQl/2

感谢您可以提供的任何帮助...

1 个答案:

答案 0 :(得分:1)

此正则表达式将执行您想要的操作。它会寻找由.和一个单词组成的多组,然后可选地由[]()内的数字组成:

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

Demo on regex101