我正在尝试使用 PHP 对多行字符串进行搜索/替换。我需要检查每一行,如果该行包含双斜杠,则删除它及其后的所有文本,但保持下一行完整。
示例文字:
文本行 1 的示例
// 要删除的文本行 2 的示例,包括双斜杠
文本行 3 的示例
预期输出:
文本行 1 的示例
文本行 2 的示例
文本行 3 的示例
无需删除双斜杠之前的空格。
我找到了这个解决方案:
它几乎符合我的需求,问题是它替换了整行,而不仅仅是所需的文本。
任何帮助将不胜感激。
虽然我不使用 PHP,但您始终可以替换以下正则表达式的所有匹配项:
\/\/.*
请注意,您需要确保未启用“单行”标志(点与换行符匹配)。
您可以在每一行使用以下表达式:
$line = preg_replace("/(.*)\/\/.*/","$1",$line);
这会将
Hello // world!
替换为 Hello
贪婪地匹配第一个出现的双正斜杠之前的所有字符后,使用匹配重置元字符,然后匹配双正斜杠和任何剩余字符,然后将该匹配替换为空字符串。
代码:(演示)
echo preg_replace('#.*\K//.*#', '', $text);