使用正则表达式替换字符串的一部分
replace a part of a string using regex
我想解析大量文本并用 *** 替换标签的特定部分。
更详细地说,我想用 *** 替换下面标签中电子邮件的第一部分:
From: abcdef@mydomaine.com
我希望它是:
From: ***@mydomaine.com
请记住,此标签可能类似于:
From: abcdef@mydomaine.com
或
From: <abcdef@mydomaine.com>
或
From: hello bla bla <abcdef@mydomaine.com>
我想始终用 *** 替换此标签中电子邮件的第一部分。
我试过 preg_replace 但我不擅长正则表达式
使用以下模式
(From:)([^<@]+<)?[^@]+(@)
并将其替换为
***
详情:
(From:)
匹配字符串 From:
从字面上将其捕获到第一组 (</code>)</li>
<li><code>([^<@]+<)?
匹配某些文本,直到第一次出现 <
。由于这部分是可选的,因此使用 ?
。比赛在第二组中被捕获 (</code>)</li>
<li><code>[^@]+
匹配第一个 @
之前的任何字符
(@)
按字面匹配 @
并将其捕获到第三组 (
)
我想解析大量文本并用 *** 替换标签的特定部分。
更详细地说,我想用 *** 替换下面标签中电子邮件的第一部分:
From: abcdef@mydomaine.com
我希望它是:
From: ***@mydomaine.com
请记住,此标签可能类似于:
From: abcdef@mydomaine.com
或
From: <abcdef@mydomaine.com>
或
From: hello bla bla <abcdef@mydomaine.com>
我想始终用 *** 替换此标签中电子邮件的第一部分。 我试过 preg_replace 但我不擅长正则表达式
使用以下模式
(From:)([^<@]+<)?[^@]+(@)
并将其替换为
***
详情:
(From:)
匹配字符串From:
从字面上将其捕获到第一组 (</code>)</li> <li><code>([^<@]+<)?
匹配某些文本,直到第一次出现<
。由于这部分是可选的,因此使用?
。比赛在第二组中被捕获 (</code>)</li> <li><code>[^@]+
匹配第一个@
之前的任何字符
(@)
按字面匹配@
并将其捕获到第三组 ()