【发布时间】:2016-12-29 12:28:12
【问题描述】:
我正在尝试实现以下目标,但没有成功:
去除开口
消息“
和尾随
"
同时将内容保留在中间,并将其保存到我的变量中,使用 sscanf 正则表达式。 我写了以下代码:
sscanf( buffer, "message \"%[^\"]", message)
当我有类似消息“嘿,那里”之类的东西时效果很好,但是当我尝试以下字符串时,我只得到两个引号之间的空格。
消息“”“”这是一个测试“”“”
结果应该是“”“这是一个测试”“”
有没有办法升级我的表达,让它包含这个极端的消息事件?我试图在谷歌和这里查找它,但找不到一个优雅的答案。我知道可以使用带有很多代码行的字符串操作,但我在这里尝试更简单的方法。
附注结尾的 " 是表达式的结尾,是程序必须的,之后什么都没有。
提前感谢您的反馈!
【问题讨论】:
-
后面的
"后面会有什么吗? -
如果不是,您可以使用
.而不是[^\"] -
不,后面的“是整个表达式的结尾。
-
@Fallenhero sscanf( buffer, "message \"%. ", message) ?这似乎不对
-
@BoazKG 你需要知道规范。是的,在 message " 之后阅读所有内容,然后检查最后一个字符是否为
"会起作用。