标签: rawstring

JSON文件中的原始字符串字段值

在我的JSON文件中,其中一个字段必须携带另一个文件(字符串)的内容。

该字符串具有CRLF,单/双引号,制表符。

有没有办法将我的整个字符串视为原始字符串,这样我就不必转义特殊字符了?

JSON中的等效字符串与C ++中的字符串原始定界符一样吗?

在C ++中,我只是将整个文件内容放入:R“(...)”

json rawstring

5
推荐指数
2
解决办法
1761
查看次数

在 String.raw 模板文字中包含文字反引号

我正在开发一个生成 JavaScript 的系统,我想最大限度地减少需要为字符串文字完成的转义量。我目前的方法是使用String.raw模板文字函数,这样我就不必担心\在输出中被解释的字符。

唯一的问题是文字反引号(即`字符)仍然需要转义,否则它们会提前终止字符串。它们不能被转义,\`因为转义序列不受尊重。

我能想到的最佳选择是使用占位符(例如String.raw`foo${"`"}bar`get "foo`bar"),但我有点担心占位符评估的运行时成本。还有其他选择吗?

javascript rawstring template-strings

5
推荐指数
0
解决办法
182
查看次数

clang-format (12.0.1) 的什么设置不会在 R 前缀和 C++ 中的原始字符串之间添加空格?

clang-format 12 (12.0.1) 的选项是什么,它在 R 前缀和原始字符串之间放置一个空格:

std::string str = R"(raw string)";
Run Code Online (Sandbox Code Playgroud)

std::string str = R "(raw string)";
Run Code Online (Sandbox Code Playgroud)

gcc (9.3.0) 或 VSCode 1.62.3 使用的 clang 不接受后者,因此这实际上破坏了源文件/构建。

我的 .clang-format 文件设置会导致出现空格,内置的 gnu 预设也会出现这种情况。其他预设(llvm、google、chromium、microsoft、mozilla 或 webkit)都不会导致此问题。

我已经转储了所有格式,并逐个设置地比较了它们。我首先删除了配置中与未导致此问题的预设之一相匹配的所有设置。然后我消除了 gnu 预设和未添加空格的预设之间相同的任何剩余设置。最后,我检查了剩下的几个设置,并将 .clang-format 文件中的设置更改为工作预设中的值,以查看它们是否解决了问题,但它们没有。

这样做,我似乎已经消除了所有的设置作为原因。

在我花更多时间、几个小时挖掘实际的源代码之前,我希望有人对此有一些见解,并能够向我指出导致问题的设置。

作为参考,我在下面包含了我的 .clang-format 设置文件。但正如所指出的,gnu 预设也表现出这种行为。

谢谢你的帮助。

AccessModifierOffset: -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: None
AlignConsecutiveBitFields: None
AlignConsecutiveDeclarations: None
AlignConsecutiveMacros: None
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: false
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: …
Run Code Online (Sandbox Code Playgroud)

c++ rawstring clang-format

5
推荐指数
1
解决办法
846
查看次数

用原始字符串文字返回回车符+换行符?

考虑一个具有UNIX行尾(即'\x0a'而不是"\x0d\x0a")并且包含以下原始字符串文字的C ++文件:

const char foo[] = R"(hello^M
)";
Run Code Online (Sandbox Code Playgroud)

^M实际字节为0x0d(即回车))。

后续字符串比较(考虑标准对原始字符串文字的定义时)应该是什么结果?

strcmp("hello\r\n", foo);
Run Code Online (Sandbox Code Playgroud)

字符串应该相等还是不相等?(即0!=0?)

使用GCC 4.8(在Fedora 19上),它们比较不相等。

这是GCC中的错误或功能吗?

c++ string gcc rawstring c++11

4
推荐指数
1
解决办法
1845
查看次数

C#中的Python原始字符串"r"标志等效

我试图在C#中提供包含特殊/转义字符的文件路径.我是C#的新手.请帮我定义文件路径为raw string literals.

以下是路径(\t具有spl意义):

IE_DRIVER_PATH ="C:\ software\selenium\temp\drivers\64"

在python中我们使用它如下(使用r- 将其视为原始stiring):

IE_DRIVER_PATH = r"C:\ software\selenium\temp\drivers\64"

同样,在java中,我们使用double slashes.

请帮我在C#中定义相同内容.截至目前,我收到的错误表明文件不存在,尽管文件存在于文件夹中.

c# python selenium filepath rawstring

4
推荐指数
1
解决办法
4867
查看次数

如何制作包含原始字符串终止符的C++原始字符串?

R"(...)"用来定义一个原始字符串但是,如果字符串实际上包含一个原始字符串终止符)",编译器会抱怨.

例如:

auto tag = R"("(add)")"; // try to get string <"(add)">
Run Code Online (Sandbox Code Playgroud)

如何修改它以便它可以工作?

c++ string rawstring

4
推荐指数
1
解决办法
143
查看次数

Python原始字符串和unicode:如何使用Web输入作为regexp模式?

编辑:一旦你拿起"r"标志的含义,这个问题就没有意义了.更多细节在这里.对于寻找快速安全的人,我在下面补充道.

如果我在Python脚本中手动输入正则表达式,我可以为模式字符串使用4种标志组合:

  • p1 ="模式"
  • p2 =你的"模式"
  • p3 = r"模式"
  • p4 = ru"模式"

我有一堆来自Web表单输入的unicode字符串,并希望将它们用作regexp模式.

我想知道我应该对字符串应用什么过程,所以我可以期望使用上面的手册形式得到类似的结果.就像是 :

import re
assert re.match(p1, some_text) == re.match(someProcess1(web_input), some_text)
assert re.match(p2, some_text) == re.match(someProcess2(web_input), some_text)
assert re.match(p3, some_text) == re.match(someProcess3(web_input), some_text)
assert re.match(p4, some_text) == re.match(someProcess4(web_input), some_text)
Run Code Online (Sandbox Code Playgroud)

someProcess1到someProcessN会是什么?为什么?

我想someProcess2不需要做任何事情,而someProcess1应该做一些unicode转换到本地编码.对于原始字符串文字,我无能为力.

python regex unicode rawstring

3
推荐指数
1
解决办法
4710
查看次数

如何绑定scala的heredoc中的数据?

val name = "mike"
val str = """Hi, {name}!"""
println(str)
Run Code Online (Sandbox Code Playgroud)

我希望它输出str as Hi, mike!,但失败了.这该怎么做?

scala heredoc rawstring

3
推荐指数
2
解决办法
1002
查看次数

理解Python中正则表达式的原始字符串

我有很多充满换行符的文本文件,我正在 python 3.4 中解析它们。我正在寻找换行符,因为它们将我的文本分成不同的部分。这是一个文本示例:

\n\n
text = \'avocat  ;\\n\\n       m. x\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我 na\xc3\xafvely 开始在正则表达式(RE)中寻找带有 \' \\n\' 的换行符,而不认为反斜杠 \' \\\' 是转义字符。然而,事实证明这工作得很好:

\n\n
>>> import re\n\n>>> pattern1 = \'\\n\\n\'\n>>> re.findall(pattern1, text)\n[\'\\n\\n\']\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,我明白我应该使用双反斜杠来寻找一个反斜杠。这也运行得很好:

\n\n
>>> pattern2 = \'\\\\n\\\\n\'\n>>> re.findall(pattern2, text)\n[\'\\n\\n\']\n
Run Code Online (Sandbox Code Playgroud)\n\n

但在另一个线程上,我被告知使用原始字符串而不是常规字符串,但这种格式无法找到我正在寻找的换行符:

\n\n
>>> pattern3 = r\'\\\\n\\\\n\'\n>>> pattern3\n\'\\\\\\\\n\\\\\\\\n\'\n>>> re.findall(pattern3, text)\n[]\n
Run Code Online (Sandbox Code Playgroud)\n\n

你能帮我一下吗?我有点困惑我应该使用什么 RE 之王才能正确匹配换行符。

\n

python regex newline rawstring

2
推荐指数
1
解决办法
892
查看次数

原始字符串文字是否像普通字符串文字一样以 null 结尾?

我知道字符串文字总是以 null 结尾,甚至""长度为 1。

原始字符串文字的情况是否相同,例如:R"()"长度是否为 1?

c++ string string-literals rawstring c++11

2
推荐指数
1
解决办法
922
查看次数