海诚 发表于 2024-9-30 22:01

帮忙正则表达式指正 php

php 对数据换行或者,读取

$jpg1 = explode(',',$jpg2);
$jpg1 = preg_match("/[\r\n,]+/",$jpg2);
$jpg1 = str_replace(PHP_EOL,'',$jpg2);

amscracker 发表于 2024-9-30 22:01

正则没错但是你应该用preg_split来处理

BDUN 发表于 2024-9-30 22:53

在 PHP 中,处理字符串换行或逗号分隔的数据通常有多种方法。你提供的代码片段中包含了一些常见的字符串处理函数,但它们似乎没有被正确地使用。下面是一些正确使用这些函数的方法:

1. **使用 `explode` 函数分割字符串**:
   `explode` 函数用于使用指定的分隔符将字符串分割成数组。例如,如果你想根据逗号分割字符串,你可以这样做:

   ```php
   $jpg2 = "image1.jpg,image2.jpg,image3.jpg";
   $jpg1 = explode(',', $jpg2);
   ```

   这将创建一个数组 `$jpg1`,其中包含 `image1.jpg`、`image2.jpg` 和 `image3.jpg`。

2. **使用 `preg_match` 函数进行正则表达式匹配**:
   `preg_match` 函数用于执行一个正则表达式匹配。如果你想检查字符串中是否包含换行符或逗号,你可以这样做:

   ```php
   $jpg2 = "image1.jpg\nimage2.jpg,image3.jpg";
   if (preg_match("/[\r\n,]+/", $jpg2)) {
       echo "字符串中包含换行符或逗号";
   } else {
       echo "字符串中不包含换行符或逗号";
   }
   ```

   注意,`preg_match` 返回的是匹配到的次数,而不是匹配到的字符串。

3. **使用 `str_replace` 函数替换字符串**:
   `str_replace` 函数用于替换字符串中的某些字符。如果你想移除字符串中的所有换行符,你可以这样做:

   ```php
   $jpg2 = "image1.jpg\nimage2.jpg\rimage3.jpg";
   $jpg1 = str_replace(PHP_EOL, '', $jpg2);
   ```

   这将移除 `$jpg2` 中的所有换行符(包括 `\n` 和 `\r`)。

4. **组合使用**:
   如果你想先分割字符串,然后移除换行符,你可以这样做:

   ```php
   $jpg2 = "image1.jpg\nimage2.jpg,image3.jpg\r";
   $jpg1 = explode(',', str_replace(PHP_EOL, '', $jpg2));
   ```

   首先,使用 `str_replace` 移除换行符,然后使用 `explode` 根据逗号分割字符串。

以上内容来自AI{:1_918:}

shipon 发表于 2024-10-1 00:01

// 假设 $jpg2 是一个以逗号和换行符分隔的字符串
$jpg2 = "image1.jpg,image2.jpg\nimage3.jpg,image4.jpg";

// 使用 preg_split 来同时处理逗号和换行符
$jpg1 = preg_split("/[\r\n,]+/", $jpg2);

// 如果你想要去掉可能存在的空白字符,可以使用 array_map 和 trim
$jpg1 = array_map('trim', $jpg1);

// 输出结果
print_r($jpg1);

Aa525525 发表于 2024-10-1 00:39

多逛逛论坛,说不定能找到新的思路呢。
页: [1]
查看完整版本: 帮忙正则表达式指正 php