微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Elisp regexp如何在换行符之后匹配文本?

如何解决Elisp regexp如何在换行符之后匹配文本?

我有一个像这样的字符串

str="?tag0
1,2,3
4,5,6
?/tag0"

并且我想用\n?/tag0代替?/tag1?/tag2?/tag0

str="?tag0
1,6?/tag1?/tag2?/tag0"

喜欢

(setq s (replace-regexp-in-string "[ \n\t\r]*\?/tag0" "?/tag1?/tag2?/tag0" str))

解决方法

*表示零个或多个前面的模式。因此,这将在开头匹配,因为?tag0前的换行符为零。

使用+来匹配一个或多个模式。

要在正则表达式中添加文字\?,您需要转义反斜杠。

(setq s (replace-regexp-in-string "[ \n\t\r]+\\?/tag0" "?/tag1?/tag2?/tag0" str))
,
(setq s (replace-regexp-in-string "[ \n\t\r?/]*tag0" "?/tag1?/tag2?/tag0" str))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。