Regex 什么';这次换人是怎么回事?
能帮我弄清楚发生了什么事吗 xnext如何结束在字符串的开头Regex 什么';这次换人是怎么回事?,regex,perl,Regex,Perl,能帮我弄清楚发生了什么事吗 xnext如何结束在字符串的开头 [237] > cat /tmp/text.txt xtop.xnext|sig 12345 [238] > perl -p -e 's/\.xnext\\|/.xnext./;' /tmp/text.txt .xnext.xtop.xnext|sig 12345 在正则表达式中,|是“交替”元字符,而不是文字管道字符。那么你的模式呢 \.xnext\\| 可以匹配文本字符串.xne
[237] > cat /tmp/text.txt
xtop.xnext|sig 12345
[238] > perl -p -e 's/\.xnext\\|/.xnext./;' /tmp/text.txt
.xnext.xtop.xnext|sig 12345
在正则表达式中,
|
是“交替”元字符,而不是文字管道字符。那么你的模式呢
\.xnext\\|
可以匹配文本字符串.xnext\
,该字符串是在替换字符的左侧指定的,或者
无,这是在替换的右侧指定的内容
因此,输入字符串的开头与正则表达式模式匹配,替换模式.xnext.
在字符串前面
您想要使用的模式是
\.xnext\|
这就是如何指定文本字符串
.xnext |
管道前面的反斜杠太多了。是的,但为什么它在开头放了一个“.xnext”?关于s///的一些基本信息我遗漏了?或者,它是如何决定对^(开始或行)(假设是这样的情况)?空替代项与第一个字符之前的空字符串相匹配。因为现在未替换的|
引入了一个带有空字符串的正则表达式替代项,该替代项立即匹配。酷。谢谢各位。我本想匹配“|”,但现在我实际上说了“有或没有”,在字符串的开头找不到任何东西。。perl魔力:)