如何在PHP中提取@符号包裹的特殊字符串内容?
PHP实现提取@包裹文本或输出提示的方案
嘿,这需求很清晰,用正则表达式就能轻松搞定!我平时处理这种固定模式的字符串提取,正则是最顺手的工具,刚好完美匹配你的需求。
核心思路就是:检查变量是否严格以@开头且以@结尾,同时提取中间的内容。如果匹配成功就输出中间的文本,否则输出提示信息。
直接上可运行的代码:
$a = "@ABCD@"; // 用正则匹配首尾的@,捕获中间内容 if (preg_match('/^@(.*)@$/', $a, $matches)) { // 匹配成功,输出捕获到的中间内容 echo $matches[1]; } else { // 不匹配,输出提示 echo "please enter your text Type in between @ @"; }
代码解释:
- 正则表达式
/^@(.*)@$/:^@:强制字符串必须以@开头(.*):捕获中间所有字符(如果需要支持包含换行的内容,可以改成(.*?)并添加s修饰符,比如/^@(.*?)@$/s)@$:强制字符串必须以@结尾
$matches是正则匹配后的结果数组,$matches[1]就是我们要提取的、去掉@的内容
测试场景示例:
- 当
$a = "@Hello PHP@"时,输出Hello PHP - 当
$a = "ABCD"时,输出提示信息 - 当
$a = "@ABCD"或$a = "ABCD@"时,同样输出提示信息
内容的提问来源于stack exchange,提问作者Diyan salman
相关产品推荐
相关产品推荐

