问题标签 [rawstring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2758 浏览

javascript - \u 在 JavaScript String.raw`模板文字`

如何避免\u被解释为字符转义序列?

在我的 JavaScript 项目中,我需要一些开始的 LaTeX 命令的字符串文字。在我将每个反斜杠 ( \\) 转义之前,但我最近在 JavaScript 中发现了原始字符串。如果我的源代码中有确切的字符串文字,那就太好了。不幸的是,现在\usepackage{indentfirst}. 被\u解释为字符转义序列,这当然不是我想要的。有没有办法避免这种行为,或者这根本不是适合的地方String.raw

精简代码:

我通过用 替换有问题的行来`+"\\usepackage{indentfirst}"+String.raw`实现这一点,但这当然不是很清楚。

0 投票
0 回答
1226 浏览

python - IOError:[Errno 22] 无效模式('w')或文件名:“C:/Users/...../file.csv”

我正在运行一个模拟,其中我在每个时间步读取和写入多个文件(.txt 或 .csv),以便与 C# 中的外部程序进行通信。

在模拟中经常出现错误:IOError: [Errno 22] invalid mode ('w') or filename:"C:/Users/..../filename.csv"

每次我运行它时都不会发生,如果我手动运行每一行,它有时可以正常工作,但有时不能。

我正在写这样的.csv:

和这样的 .txt 文件:

我查看了类似的问题,但大多数都与使用反斜杠和冒号有关,因此我在整个代码中使用原始字符串和正斜杠,并且在每次保存或访问文件之前将字符串转换为变量“路径”。当我运行模拟时,它有时会起作用,有时我会收到错误:

我应该注意我正在 Dropbox 上编写和保存文件 - 这可能是问题吗?在下一行尝试访问它们之前,可能文件同步速度不够快。无论如何,我不明白为什么它有时会起作用而其他时候不起作用。有什么建议么?

0 投票
1 回答
80 浏览

python - u 和 r 前缀如何与 python 中的字符串一起使用?

我知道我们可以在字符串之前使用 r(raw string) 和 u(unicode) 标志来获得我们可能真正想要的。但是,我想知道这些如何与字符串一起使用。我在 IDLE 中试过这个:

Python 如何知道它应该将字符串前面的ror视为标志?u或者作为具体的字符串文字?如果我想更多地了解什么是字符串文字及其限制,我该如何学习它们?

0 投票
1 回答
12860 浏览

c# - C#中等效的Python原始字符串“r”标志

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

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

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

在 python 中,我们按如下方式使用它(使用r- 将其视为原始搅拌):

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

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

请帮助我在 C# 中定义相同的内容。截至目前,我收到错误消息,指出该文件不存在,尽管该文件存在于文件夹中。

0 投票
1 回答
41 浏览

python - 如何反映是否使用了原始字符串或普通字符串?

我有一个配置文件,用户可以在其中提供正则表达式来匹配单词,例如

问题是:如果用户提供"is",这也将匹配"This"-- 这不是我想要的。第二个正则表达式更好,因为它使用单词边界。不幸的是,对每个单词都这样做很烦人。

我的想法如下:让用户指定原始字符串(为正则表达式匹配而保持不变)和“普通字符串”(r"\b({})\b".format(word)为方便起见首先翻译成)。有没有办法实现这个?是否可以使用反射来判断一个字符串是否最初是作为原始字符串提供的?

0 投票
0 回答
148 浏览

android - Kotlin 原始字符串抛出空白错误

我正在使用 kotlin 创建一个 gradle 插件,并且正在插入一些 ascii 艺术。我决定使用原始字符串,而不是试图逃避大量反斜杠,但现在每当我的行包含 2 个垂直条时,我都会遇到奇怪的无名错误。

这是一些示例代码:

这导致我的消息日志中出现以下错误:

有谁知道为什么会发生这个错误?我已经覆盖了边距字符,所以我不明白为什么竖线仍然影响原始字符串。奇怪的是,它只发生在第二个小节之后。

这只是项目的一个纯粹的装饰部分,所以如果我必须删除它并不是什么大不了的事。

任何见解表示赞赏!

编辑:

我已经重新启动了我的计算机和 IDE,现在我提供的示例字符串不会导致这些错误。但是我的 ascii 字符串仍然存在,所以我将提供一个给出错误的艺术片段。

我也在使用 kotlin 1.1.0 并尝试降级到 1.0.6 并且仍然看到错误。

新的示例代码:

给出这些错误:

0 投票
2 回答
1357 浏览

python - 创建和解析 Python 原始字符串文字 R""

编辑
我不确定这个问题是否被正确阅读。
我已经知道 Python 中有哪些字符串格式
每一个小细节,我已经知道了。
请停止向我提出有关 Python 中字符串类型的问题。

这是一个特定的问题,与原始语法构造
主体中的问题字符串分隔符有关。

我想知道为什么我不能在这个
原始字符串上使用原始语法 r"" 或 r'' 形式,"word's"并让它像这样存在于变量中。

我为什么要这样做并不重要,但我已经在下面解释了。

谢谢。


我只是介绍了一些语法规则,以
使用和的原始字符串语法规则来解析r' '和创建字符串r" "

作为记录,我已经阅读了有关原始字符串的文档和规则。
该问题特定于转义原始字符串中的分隔符。

我有一个实用程序可以解析/生成其他字符串类型并用于
生产代码。

我很困惑,当字符串在变量中时,Python 不会删除转义分隔符的转义

这是设计使然,即。不删除分隔符上的转义符或我
希望的内容,只是解析过程中遗漏的一部分。
基本上,一个错误?


如果在解析后,字符串看起来不像原始图像,则该字符串并不是真正的原始图像。
解析后,在一个变量中,它现在变得无用了。

这是一个疏忽吗,将来可能会更正吗?

就像现在一样,在我的实用程序中,我只能创建一个原始语法形式,但由于
这个错误,我无法解析它,除非我从分隔符中移除转义符。

我的意思是,我想我可以这样做,因为它与生成字符串是直接相反的,
但令人不安的是,词法解析器在
解析过程之后将这种人为的转义留在了变量中。

这是我用来验证问题的一些代码:

代码

输出

任何一个

0 投票
1 回答
516 浏览

python - 如何在 python 中以编程方式将 r'\n' 转换为 '\n'?

假设我有一个原始字符串r'\n',对应于'\\n'. 有没有办法将原始字符串解释为'\n'具有换行意义的“正常”字符串?

0 投票
1 回答
231 浏览

python - python:如何将变量中的字符串转换或转换为原始字符串

我有一个字符串变量 (x),我想使用 exec() 正确打印出来。如果我可以访问变量,我可以直接使用 r' 并解决问题,例如:

但在这种情况下,我无权访问该变量。所以字符串变量来自另一端或其他用户。那么如何将此 r' 应用于现有变量,以便我可以使用 exec() 。

正确的输出应该是:

真实情况是:

在我的软件中,我可以创建对象,每个对象都可以具有文本输入和按钮等属性。我将此文本输入和按钮属性称为object.text_inputobject.button。假设我有 2 个名为AABB的对象,并且我在AA.text_input(object1 的文本输入)中键入了一个表达式/脚本。现在从 BB (object2) 我想使用在AA.text_input中输入的表达式并使用exec()执行它。所以在BB.button我会写一个代码,如:exec(AA.text_input). 所以我从 AA 获取的数据将是一个字符串。问题是 AA 文本输入中的代码类型可能包含任何字符,包括转义字符和其他字符。因此,当我在 BB 中使用 exec() 时,我会因为这些字符而出错。所以问题是:如何将该字符串从 BB.text_input 正确带到 AA?

0 投票
0 回答
2169 浏览

c++ - 使用 target_compile_definitions 添加原始字符串宏

我想添加到CMakeLists.txt原始字符串宏等价于:

我尝试了以下方法:

但我收到一个错误:

path/to/project/CMakeLists.txt:68 处的 CMake 警告(dev):第 85 列的 cmake 代码中的语法警告

参数没有用空格与前面的标记分隔。此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。

是否可以在 bash 中使用某种引号,例如 '' 来防止发生上述错误?