用特定文本替换匹配文本的每个字符
Replace each character of matched text with certain text
我使用 PCRE
正则表达式,但在替换匹配文本的每个单词时遇到问题。
我使用此模式将所需文本与分组相匹配:
(?<=^|[_\-/:]\w)(\w+?)(?=\w[_\-/:]|$)
示例文本是这样的:
yVOdbtnRWSkpgi0iDWeRtyynyREV7yVKyNuJmsFmpSPtnlXaLb/Ik4zuyJFwqRWCGeIRp7m3Cef9kSjvCIrFG4iaweaB49WecZoNP8CTta79kVXpAcIVohHnsLcJ5+
我想将分组匹配 ()
的所有字符转换为 ?i
:
yV?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?iLb/Ik?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?iJ5+
我该怎么做?
您可以使用这个正则表达式来搜索:
~(?<=[^+/_-]\w)\w(?=\w[^+/_-])~
并替换为:
?i
代码:
$repl = preg_replace('~(?<=[^+/_-]\w)\w(?=\w[^+/_-])~', '?i', $str);
正则表达式演示
(?<=[^+/_-]\w)
:正面回溯断言我们有一个字符不是 +
、/
、_
和 -
后跟一个单词字符后跟在 前一个位置
\w
:匹配一个单词字符
(?=\w[^+/_-])
:正面前瞻断言我们有一个单词字符后跟一个不是 +
、/
、_
和 [=17 的字符=] 提前
我使用 PCRE
正则表达式,但在替换匹配文本的每个单词时遇到问题。
我使用此模式将所需文本与分组相匹配:
(?<=^|[_\-/:]\w)(\w+?)(?=\w[_\-/:]|$)
示例文本是这样的:
yVOdbtnRWSkpgi0iDWeRtyynyREV7yVKyNuJmsFmpSPtnlXaLb/Ik4zuyJFwqRWCGeIRp7m3Cef9kSjvCIrFG4iaweaB49WecZoNP8CTta79kVXpAcIVohHnsLcJ5+
我想将分组匹配 ()
的所有字符转换为 ?i
:
yV?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?iLb/Ik?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?i?iJ5+
我该怎么做?
您可以使用这个正则表达式来搜索:
~(?<=[^+/_-]\w)\w(?=\w[^+/_-])~
并替换为:
?i
代码:
$repl = preg_replace('~(?<=[^+/_-]\w)\w(?=\w[^+/_-])~', '?i', $str);
正则表达式演示
(?<=[^+/_-]\w)
:正面回溯断言我们有一个字符不是+
、/
、_
和-
后跟一个单词字符后跟在 前一个位置\w
:匹配一个单词字符(?=\w[^+/_-])
:正面前瞻断言我们有一个单词字符后跟一个不是+
、/
、_
和 [=17 的字符=] 提前