我想在java中使用正则表达式获得一个特定的单词。由于
在下面的段落中,我需要找到网络接口名称resource "azurerm_network_interface" "nic_LinuxVMCent-nhi" {
name = "nic_LinuxVMCent-nhi"
location = azurerm_resource_group.main.location
resource_group_name = azurerm_resource_group.main.name
ip_configuration {
name = "pubIP_LinuxVMCent-nhi"
subnet_id = azurerm_subnet.sub_wind12VM-PtN.id
private_ip_address_allocation = "Dynamic"
public_ip_address_id = azurerm_public_ip.pubIP_LinuxVMCent-nhi.id
}
}
data "azurerm_snapshot" "snapLinuxVMCent-nhi" {
name = "CentOS76New-0"
resource_group_name = "SaaSworkloadsnaps"
}
预期结果Ex:
nic_LinuxVMCent-nhi
这是一个多行文本位。然而,似乎有一行你可以用正则表达式识别:
resource "azurerm_network_interface" "nic_LinuxVMCent-nhi" {
对应的正则表达式是^resource "azurerm_network_interface" "([^"]+)" {$
-参见https://regexr.com/67ldb
您可以使用Matcher.match
来查看是否有任何行与此表达式匹配,如果匹配,则matcher.group(1)
将是您正在寻找的值。
您可以使用此正则表达式查找网络接口名称:
(?<=resource "azurerm_network_interface" ").+(?=" {)
我已经使用向前看来查找名称。此外,这里有一个链接到regex101:链接
我不懂网络接口,这个正则表达式解决方案特定于"azurerm_network_interface."如果您需要任何其他帮助,请在下方评论。欢呼:)