真的为此感到挣扎...希望有人可以让我走上正确的道路。
我的输入字符串的结构如下:
66-2141-A-AC107-7
我对使用单个正则表达式提取字符串“ AC107”感兴趣。我知道如何使用其他PHP字符串函数来执行此操作,但是我必须使用正则表达式来执行此操作。
我需要提取第三和第四连字符之间的所有数据。每个部分的结构不是固定的(即66可以是8798709,而2141可以是38)。确保连字符的数量存在(即,总会有四(4)个连字符)。
任何帮助/指导都将不胜感激!
这将满足您的需求:
(?:[^-]*-){3}([^-]+)
解释:
(?:[^-]*-)
查找零个或多个非连字符,后跟一个连字符 {3}
寻找刚才描述的三个方块([^-]+)
从该点开始捕获所有连续的非连字符(将在下一个连字符之前自动切断)您可以像这样在PHP中使用它:
$str = '66-2141-A-AC107-7';
preg_match('/^(?:[^-]*-){3}([^-]+)/', $str, $matches);
echo $matches[1]; // prints AC107
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句