PHP - 替换两个特定字符后的所有文本

问题描述 投票:0回答:4

我正在尝试使用 PHP 对多行字符串进行搜索/替换。我需要检查每一行,如果该行包含双斜杠,则删除它及其后的所有文本,但保持下一行完整。

示例文字:

文本行 1 的示例
// 要删除的文本行 2 的示例,包括双斜杠
文本行 3 的示例

预期输出:

文本行 1 的示例
文本行 2 的示例
文本行 3 的示例

无需删除双斜杠之前的空格。

我找到了这个解决方案:

如果 .txt 文件的一行中存在单词,PHP 会更改整行

它几乎符合我的需求,问题是它替换了整行,而不仅仅是所需的文本。

任何帮助将不胜感激。

php regex search replace preg-replace
4个回答
1
投票

虽然我不使用 PHP,但您始终可以替换以下正则表达式的所有匹配项:

\/\/.*

请注意,您需要确保未启用“单行”标志(点与换行符匹配)。


0
投票

您可以在每一行使用以下表达式:

$line = preg_replace("/(.*)\/\/.*/","$1",$line);

这会将

Hello // world!
替换为
Hello


0
投票

尝试在

preg_match
中使用此正则表达式并将其替换为
''

/\/\/[^\r\n]*/ig

您可以在这里查看https://regex101.com/r/MC6OcN/2


0
投票

贪婪地匹配第一个出现的双正斜杠之前的所有字符后,使用匹配重置元字符,然后匹配双正斜杠和任何剩余字符,然后将该匹配替换为空字符串。

代码:(演示

echo preg_replace('#.*\K//.*#', '', $text);
© www.soinside.com 2019 - 2024. All rights reserved.