regex - 是否可以在第一次出现和最后一次出现字符时用正则表达式替换?

标签 regex

我试图在第一次和最后一次出现时用 "" 替换 |

示例:

“你好 | 我的名字 | 是 | Jason | 我喜欢黑客”

到目前为止,我只能做其中之一。

第一次出现:

^(.*?)[|]

最后一次出现:

(|)[^|]*$"

是否可以同时更换两者,还是必须分步更换?

最佳答案

试试这个

^([^|]*)\||\|(?=[^|]*$)

并将其替换为

$1"

查看here on Regexr

这里的技巧是将字符串中的第一部分与捕获组匹配并将其写入替换字符串中。对于匹配最后一个“|”的第二个备选方案没有捕获组,所以这将用空字符串填充并且不会损坏替换字符串。

关于regex - 是否可以在第一次出现和最后一次出现字符时用正则表达式替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13510429/

相关文章:

javascript - 使用正则表达式删除每个单词末尾的特定字符

regex - Python 3如何使用正则表达式在两点之间获取字符串?

python - 在 Pandas 中拆分列

regex - 使用 grep 列出目录中 10 小时内更改的文件

javascript - 在 JavaScript 正则表达式中搜索 » 字符

ios - 如果找到匹配正则表达式,则从字符串中获取值

javascript - 为什么我的正则表达式在这种特殊情况下不起作用

Python 正则表达式问题

regex - Vim 正则表达式删除字符(:) if not followed by a character and the end of the string

java - 删除 Re : Fwd: from Mail subjects