Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Php 使用正则表达式提取模式_Php_Regex - Fatal编程技术网

Php 使用正则表达式提取模式

Php 使用正则表达式提取模式,php,regex,Php,Regex,我有以下字符串: Name-AB_date, Name-XYZ_date, Name-JK_date, Name-AB_gate_date, Name-XYZ_gate_date, Name-JK_gate_date 我需要一个PHP中的正则表达式,它将匹配上面每个字符串中的以下子字符串 AB, XYZ, JK, AB, XYZ, JK 我目前使用的是regex: (?<=Name-)(.*)(?=_) 它又回来了 AB_gate, XYZ_gate and JK_gate 如何让

我有以下字符串:

Name-AB_date, Name-XYZ_date, Name-JK_date, Name-AB_gate_date, Name-XYZ_gate_date, Name-JK_gate_date
我需要一个PHP中的正则表达式,它将匹配上面每个字符串中的以下子字符串

AB, XYZ, JK, AB, XYZ, JK
我目前使用的是
regex

(?<=Name-)(.*)(?=_)
它又回来了

AB_gate, XYZ_gate and JK_gate
如何让它在这三个字符串中匹配以下内容

AB,XYZ和JK


Permlink:

*
默认为贪婪。将正则表达式中的
*
更改为
*?
。你也可以试试这个正则表达式

(?<=Name-)[^_]*(?=_)

(?
*
默认情况下是贪婪的。将正则表达式中的
*
更改为
*?
。您也可以尝试此正则表达式

(?<=Name-)[^_]*(?=_)

(?您需要做的就是使
(.*)
非贪婪

(?<=Name-)(.*?)(?=_)

(?您需要做的就是使
(.*)
非贪婪

(?<=Name-)(.*?)(?=_)
(?与

Name-(\w*?)_
如果这符合你的需要

编辑:

如果必须有多个字符。

它与

Name-(\w*?)_
如果这符合你的需要

编辑:

如果必须有多个字符。

那么这个字符呢

Name-([^_]*)_.*
这个怎么样

Name-([^_]*)_.*