gpt4 book ai didi

php 测试字符串是否包含三个字符串之一?

转载 作者:可可西里 更新时间:2023-10-31 23:57:36 25 4
gpt4 key购买 nike

实现以下目标的最佳方法是什么:

我有一个 $img 变量包含例如myimage_left.jgpsomeimage_center.jpgimg_right.jpg

测试文件名的 _left_right_center 并提取此值并将其存储在变量中的最佳方法是什么?

所以我有 $img,它已经包含了文件的完整基本名称。我需要有 $pos 应该包含 _center_left_right

有什么方法可以做到这一点? preg_match、strpos 等?

最佳答案

正则表达式最简单:

$input = 'foo_left.jpg';
if(!preg_match('/_(left|right|center)/', $input, $matches)) {
// no match
}

$pos = $matches[0]; // "_left", "_right" or "_center"

See it in action .

更新:

对于更具防御性的方法(如果可能有多个 "_left" 实例和friends 在文件名中),你可以考虑添加到正则表达式中。

仅当 l/r/c 后跟一个点时才会匹配:

preg_match('/(_(left|right|center))\./', $input, $matches);

仅当 l/r/c 后跟文件名中的last 点时才会匹配(这实际上意味着基本名称以 l/r/c 规范结尾):

preg_match('/(_(left|right|center))\\.[^\\.]*$/', $input, $matches);

等等。

如果使用这些正则表达式,您将在 $matches[1] 而不是 $matches[0] 中找到结果。

关于php 测试字符串是否包含三个字符串之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5792625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com