gpt4 book ai didi

string - SWI Prolog 转义引号

转载 作者:行者123 更新时间:2023-12-02 08:48:59 24 4
gpt4 key购买 nike

我需要在序言中将“”放在字符串周围。我从另一个程序获得输入,看起来我无法转义该程序中的“,因此我必须在序言中添加”,否则序言语句将不起作用。

感谢您的帮助!

最佳答案

关于 strings 的讨论请参阅此处,它们是 SWI-Prolog 特定的,但使用与原子相同的转义规则。有多种方法可以在 Prolog 文本中的原子中输入引号:

1) 将它们加倍。例如“不可能”是一个原子, 用单引号作为第四个字符,没有其他字符 其中单引号。

2) 使用反斜杠转义它们。例如 “can\'t be”与“can't be”是同一个原子。

3) 使用八进制代码和结束反斜杠对它们进行字符编码。 例如,'can\47\t be' 与 'can''t be' 是同一个原子。

4) 使用十六进制代码和结束反斜杠对它们进行字符编码。 例如,'can\x27\t be' 与 'can''t be' 是同一个原子。

以上可能性均在 ISO 标准中定义。 AProlog 的实现可能会定义更多的可能性。

再见

P.S.:这是在 SWI-Prolog 中运行的示例,使用不同的示例字符。在下面的第一个示例查询中,您不需要加倍,只能对周围的报价进行加倍。

下面的最后一个示例查询显示了 SWI-Prolog 特定语法ISO 标准中没有,即使用反斜杠u 具有固定宽度的十六进制代码:

Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 7.1.33)
Copyright (c) 1990-2015 University of Amsterdam, VU Amsterdam

?- X = 'she said "bye"'.
X = 'she said "bye"'.

?- X = 'she said \"bye\"'.
X = 'she said "bye"'.

?- X = 'she said \42\bye\42\'.
X = 'she said "bye"'.

?- X = 'she said \x22\bye\x22\'.
X = 'she said "bye"'.

?- X = 'she said \u0022bye\u0022'.
X = 'she said "bye"'.

关于string - SWI Prolog 转义引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26504738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com