php - 在 PHP 中删除字符串开头的几个字符?

标签 php string

我需要从文本文件中找到特定的文本行, 然后将其复制到新的文本文件中:

1:我有一个包含多行文本的文本文件,例如:

JOHN
MIKE
BEN
*BJAMES
PETE

2:所以,我将文本文件内容读入数组, 将每一行文本放入数组的单独元素中。

3:然后我测试了数组的每个元素, 要查找以以下内容开头的行,请说:*B ie:

if ( preg_match( "/^\*(B)/",$contents[$a] ) )

哪个工作正常...

4:然后我将该行文本复制(写入)到一个新的文本文件中。

问:那么如何从该行文本中删除“*B”, 在我将其写入新的文本文件之前?

最佳答案

如果您已经使用 preg_match,您可以修改正则表达式以在另一个变量中获取您想要的内容。

if (preg_match('/^\*B(.*)$/', $contens[$a], $matches)
{
    fwrite($targetPointer, $matches[1]);
}  

使用 preg_match 后,变量 $matches 保存括在括号中的正则表达式子部分的单个匹配项。因此,行的相关部分由 (.*) 匹配并保存到 $matches[1] 中。

关于php - 在 PHP 中删除字符串开头的几个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6030479/

相关文章:

python - 我可以将逻辑运算符 "or"与字符串结合使用吗?

android - 为什么android的String.format狗慢?

java - 如何检查一个字符串的字符是否在另一个字符串中

c++ - 为什么不支持连接 std::string 和 std::string_view?

php - 您可以使用 PDO 将占位符放在查询的选定部分吗?

javascript - 根据链接到数据库的组合框在标签中显示值

php - 使用 MySQL 查询返回正确数据时遇到问题

c++ - 如何确保在 C++ 中只输出 6 位、用 0 填充的十六进制值?

javascript - 使用 PHP 和 JS 显示单独列的多个计时器!但显示 "EXPIRED EVERYTIME"

php - Laravel 5.5 - 未找到类自定义 BaseController 但存在