需要使用 java 正则表达式获取特定单词

Need to get Particular word using java Regex

我想在 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"
}

预期结果例如:

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 的 link: Link

我不知道网络接口, 此正则表达式解决方案特定于“azurerm_network_interface”。 如果您需要任何其他帮助,请在下方评论。 干杯:)