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

时间:2017-03-25 05:51:31

标签: php regex search replace preg-replace

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

示例文字

文字第1行的样本 文本行2的样本//要删除,包括双斜线
文本行3的样本

预期输出:

文字第1行的样本 文本行2的样本 文本行3的样本

无需在双斜线之前删除空格。

我找到了这个解决方案:

PHP change whole line if a word exist in a line of .txt file

它几乎符合我的需要,问题在于它取代了整行,而不仅仅是所需的文本。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

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

\/\/.*

请注意,您需要确保"单行"标志(其中dot匹配换行符)未启用。

答案 1 :(得分:0)

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

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

这会将Hello // world!替换为Hello

答案 2 :(得分:0)

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

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

您可以在此处查看https://regex101.com/r/MC6OcN/2