包含内容的行:

文本之前

// SHOW_DONE_BLOCK_START
/**
 *
 * Some Content
 *
 
    
}
// SHOW_DONE_BLOCK_END

后的文本

和表达式:

'~[\s]+\/\/[\s]*SHOW_DONE_BLOCK_.*~i'

剪掉这些线,不留空白

我做了个小提琴:https://regex101.com/r/ncmMka/3

看起来regexp是coreect,但它也会在块之前得到空行,这不是我需要的.

添加关键字"U"--ungready--没有帮助.怎么做呢?

PHP SIDE CODE :个 在php代码中,包含$Contents的多行数据,其 struct 显示在使用regex的主题的顶部:

   $contents = preg_replace('~[^\S\n]*\/\/[\s]*SHOW_DONE_BLOCK_.*~i', '', $contents);

这些带有//show_one_block_start的块被剪切了,但是我仍然留下了空行.我要把它们取下来.

推荐答案

问题是,\s也与换行符匹配.您可以将不是换行符的空格与被否定的字符集[^\S\n]匹配:

[^\S\n]*\/\/\s*SHOW_DONE_BLOCK_.*\n

演示:https://regex101.com/r/ncmMka/6

Php相关问答推荐

为什么注册SIGHUP的处理程序函数会阻止在PHP CLI中等待输入时点击X关闭Xterm窗口?""

如果活动订阅者的购物车中有订阅项目,则在WooCommerce签出中显示通知

在特定日期之间使用特定的元密钥销售产品

为什么正则表达式与得到的文本块之前得到的也行?

不包括WooCommerce中单独销售的产品

laravel中获取的数据会自动更改时间戳值

Laravel服务Provider 没有向服务类注入价值

在带有livewire 3的laravel中使用规则方法时,无法进行实时验证

在WooCommerce管理中为订单项目添加自定义字段价格值

如何批量处理消息总线中的消息

Filament v3:具有 hasMany 和 BelongsTo 的关系管理器

如何在 PHP laravel 中将图像的透明背景转换为白色?

Google Drive API:为什么使用服务帐户在下载文件时会将我带到 Google Drive 登录窗口?

使用 Composer 找不到 Google APIClient 类

Laravel Eloquent(where 子句)

后退按钮不起作用 laravel ajax crud

Shopware 6:无法在新的自定义插件中保存关联字段(媒体)

为什么 ECDSA 384 签名验证在 GO 中失败,但在 PHP 中却没有?

使用循环和引用而不是递归创建分层/父子数组

在全局安装 Composer 包后运行命令