PHP正则表达式在斜杠和减法之间匹配
你好,我需要一个正则表达式来获取字符串“trkfixo” 我试图使用PHP正则表达式在斜杠和减法之间匹配,php,regex,Php,Regex,你好,我需要一个正则表达式来获取字符串“trkfixo” 我试图使用explode,但我更喜欢正则表达式解决方案 $ex = explode("/",$sip); $ex2 = explode("-",$ex[1]); echo $ex2[0]; 您可以使用“~/([^-]+)~”: $re = '~/([^-]+)~'; $str = "SIP/trkfixo-000072b6"; preg_match($re, $str, $match); echo $match[1]; // =&g
explode
,但我更喜欢正则表达式解决方案
$ex = explode("/",$sip);
$ex2 = explode("-",$ex[1]);
echo $ex2[0];
您可以使用“~/([^-]+)~”
:
$re = '~/([^-]+)~';
$str = "SIP/trkfixo-000072b6";
preg_match($re, $str, $match);
echo $match[1]; // => trkfixo
看到了吗
图案细节:
-匹配/
/
-第1组捕获除([^-]+)
以外的1个或多个(-
)符号(因为+
是一个与该类内所有符号和范围以外的任何符号相匹配的否定字符类)[^-]
trkfixo
。此代码行-$match=preg\u match(“/\/[a-zA-Z]-/”,“SIP/trkfixo-000072b6”)
-仅获取输入字符串中出现的/
+ASCII字母+-
的次数。正则表达式和代码不执行所需的操作,请参阅。这个答案毫无帮助。啊,威克托,我今天有几个质量较差的答案。我一回到家就纠正它。你试过这种方法吗?如果还有什么不清楚或需要更多帮助,请告知。
$match = preg_match('/\/[a-zA-Z]-/', "SIP/trkfixo-000072b6");
$re = '~/([^-]+)~';
$str = "SIP/trkfixo-000072b6";
preg_match($re, $str, $match);
echo $match[1]; // => trkfixo