Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式-多行抽取_Regex - Fatal编程技术网

Regex 正则表达式-多行抽取

Regex 正则表达式-多行抽取,regex,Regex,在少数情况下,当nfc_支持“value=”true时,使用附带的正则表达式,我能够匹配并提取“model_name”值。但是,我无法使其与下面显示的其他实例相匹配。如果您能在这两种情况下提供任何帮助使其匹配,我们将不胜感激 例: 如果我错了,请原谅,但这看起来像是你的表情: [A-Za-z1-9”=();,.\uz/\s] 不考虑字符类中的0(显示为1-9),因此应为: [A-Za-z0-9”=();,.\uz/\s] 编辑:这是关于“model_name”value=“U8650”不匹配的示

在少数情况下,当nfc_支持“value=”true时,使用附带的正则表达式,我能够匹配并提取“model_name”值。但是,我无法使其与下面显示的其他实例相匹配。如果您能在这两种情况下提供任何帮助使其匹配,我们将不胜感激

例:


如果我错了,请原谅,但这看起来像是你的表情:

[A-Za-z1-9”=();,.\uz/\s]

不考虑字符类中的0(显示为1-9),因此应为:

[A-Za-z0-9”=();,.\uz/\s]


编辑:这是关于“model_name”value=“U8650”不匹配的示例,因为您使用贪婪的
*
量词,所以您的正则表达式将匹配第一个model_name和最后一个nfc_support=true之间的所有内容。如果在应用正则表达式的同一字符串中多次出现nfc_支持,则这是一个问题,因为它将继续搜索,直到找到为止。有选择地匹配可能出现多次的文本的更好做法是使用不情愿的贪婪量词:
*?
,以避免匹配过多

假设所有行将遵循型号名称、品牌名称、市场营销名称、/group、组id以及nfc支持的格式,则实施此格式的正则表达式为:

(?s)\n\n\n\n\n

如果这个正则表达式中有拼写错误,请提前道歉,但你已经了解了它的要点


仅当nfc支持为“true”时,此正则表达式将模型名称、品牌名称和营销名称的值分别存储到$1、2和$3组中。
(?s)
启用多行搜索。

可能重复您要匹配的内容?
<capability name=\"model_name\"[A-Za-z1-9"=();,._/<>\s]*<capability name=\"nfc_support\"           value=\"true\"/>
<capability name="model_name" value="T11"/>
<capability name="brand_name" value="Turkcell"/>
<capability name="marketing_name" value="Campaign"/>
</group>
<group id="chips">
<capability name="nfc_support" value="true"/>
</group>
<capability name="model_name" value="U8650"/>
<capability name="brand_name" value="Huawei"/>
<capability name="marketing_name" value="Sonic"/>
</group>
<group id="chips">
<capability name="nfc_support" value="true"/>