使用RegEx查找特定的文本模式

时间:2016-08-10 09:14:00

标签: regex

我有以下文字.....

('virtualMachines_20160810_VM02_name'),'2016710113655.vhd'))]"
            },
            "caching": "ReadWrite"
          },
          "dataDisks": []
        },
        "osProfile": {
          "computerName": "[parameters('virtualMachines_20160810_VM02_name')]",
          "adminUsername": "marc.kean",
          "windowsConfiguration": {
            "provisionVMAgent": true,
            "enableAutomaticUpdates": true
          },
          "secrets": [],
          "adminPassword": "[parameters('virtualMachines_20160810_VM02_adminPassword')]"
        },
        "networkProfile": {
          "networkInterfaces": [
            {
              "id": "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaces_20160810_vm02308_name'))]"
            }
          ]
        }
      },

我正在尝试使用RegEx来完全匹配此文本的一部分。我要匹配的部分是包含文本“osProfile”的整行(包括行的开头/结尾处的所有空格),直到并包括整行(包括任何空格)在“networkProfile”

之上

这是我到目前为止所做的,但这匹配了两个捕获组,我只想要具体指定的文本。

\s*"osProfile[\w|\W]*},(\s*"networkProfile")

我也有:

((\s*"osProfile[\w|\W]*?},)([\w|\W

1 个答案:

答案 0 :(得分:1)

不确定您使用正则表达式的用例是什么,但这是您想要的:

\s*"osProfile":\s*\{[^\}]+\}[^\}]+\},

https://regex101.com/r/qA1nQ1/2

\s*"osProfile":\s*\{

将为您提供第一行

[^\}]+\}

将为您提供一切直到第一个}

[^\}]+\},

将为您提供所有内容,直至第二个},然后是