标签: rawstring

"u"和"r"字符串标志究竟做了什么,以及什么是原始字符串文字?

在问这个问题时,我意识到我对原始字符串知之甚少.对于那些自称是Django训练师的人来说,这很糟糕.

我知道编码是什么,而且我知道u''自从我得到什么是Unicode以来我们独自做了什么.

  • 但到底r''做了什么呢?它会产生什么样的字符串?

  • And above all, what the heck does ur'' do?

  • Finally, is there any reliable way to go back from a Unicode string to a simple raw string?

  • Ah, and by the way, if your system and your text editor charset are set to UTF-8, does u'' actually do anything?

python unicode python-2.x rawstring

600
推荐指数
7
解决办法
41万
查看次数

为什么Python的原始字符串文字不能以单个反斜杠结尾?

从技术上讲,任何奇数个反斜杠,如文档所述.

>>> r'\'
  File "<stdin>", line 1
    r'\'
       ^
SyntaxError: EOL while scanning string literal
>>> r'\\'
'\\\\'
>>> r'\\\'
  File "<stdin>", line 1
    r'\\\'
         ^
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)

似乎解析器可以将原始字符串中的反斜杠视为常规字符(不是原始字符串的全部内容吗?),但我可能遗漏了一些明显的东西.TIA!

python string literals rawstring

157
推荐指数
6
解决办法
7万
查看次数

字符串文字前面带有"r"的含义是什么意思?

我第一次看到它用于构建跨多行的正则表达式作为方法参数re.compile(),所以我认为它r代表RegEx.

例如:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)
Run Code Online (Sandbox Code Playgroud)

那么r在这种情况下意味着什么呢?我们为什么需要它?

python string syntax literals rawstring

113
推荐指数
2
解决办法
8万
查看次数

Java中的原始字符串 - 特别是正则表达式

有没有办法在Java中使用原始字符串(没有转义序列)?

(我正在编写相当数量的正则表达式代码,原始字符串会使我的代码更具可读性)

我知道这种语言并没有直接提供,但有没有办法以任何方式"模拟"它们?

java regex string rawstring

68
推荐指数
6
解决办法
3万
查看次数

究竟什么是"原始字符串正则表达式"以及如何使用它?

正则表达式的python文档,关于'\'字符:

解决方案是使用Python的原始字符串表示法来表示正则表达式模式; 在前缀的字符串文字中,不以任何特殊方式处理反斜杠'r'.所以r"\n"是一个包含'\'和的双字符字符串'n',"\n"而是包含换行符的单字符字符串.通常,模式将使用此原始字符串表示法在Python代码中表示.

什么是原始字符串表示法?如果您使用原始字符串格式,这是否意味着"*"作为文字字符而不是零或多指标?这显然是不对的,否则正则表达式将彻底失去它的力量.但是,如果它是一个原始字符串,它"\n"是如何识别换行符,如果它实际上是一个反斜杠和一个"n"

我不跟随.

编辑赏金:

我试图理解原始字符串正则表达式如何匹配换行符,制表符和字符集,例如\w单词或\d数字或所有其他,如果原始字符串模式不能将反斜杠识别为普通字符以外的任何内容.我真的可以使用一些很好的例子.

python regex python-module rawstring

55
推荐指数
3
解决办法
3万
查看次数

在C++ 11中应该首先发生什么:原始字符串扩展还是宏?

此代码适用于Visual C++ 2013,但不适用于gcc/clang:

#if 0
R"foo(
#else
int dostuff () { return 23; }
// )foo";
#endif
dostuff();
Run Code Online (Sandbox Code Playgroud)

Visual C++首先删除if 0.Clang首先扩展R原始字符串(并且永远不会定义dostuff).谁是对的,为什么?

c++ rawstring c-preprocessor c++11

42
推荐指数
1
解决办法
1819
查看次数

如何匹配Python原始字符串中的新行字符

我对Python原始字符串有点困惑.我知道如果我们使用原始字符串,那么它会将'\'视为正常的反斜杠(例如r'\n'将是'\'和'n').但是,我想知道如果我想匹配原始字符串中的新行字符.我试过r'\n',但它不起作用.有人对此有一些好主意吗?

python regex rawstring

27
推荐指数
2
解决办法
7万
查看次数

ES6 Raw String Access的实际用途是什么?

String.rawECMAScript 6中引入的Raw String Access 的实际用途是什么?

// String.raw(callSite, ...substitutions)

function quux (strings, ...values) {
    strings[0] === "foo\n"
    strings[1] === "bar"
    strings.raw[0] === "foo\\n"
    strings.raw[1] === "bar"
    values[0] === 42
}

quux `foo\n${ 42 }bar`

String.raw `foo\n${ 42 }bar` === "foo\\n42bar"
Run Code Online (Sandbox Code Playgroud)

我浏览了下面的文档.

http://es6-features.org/#RawStringAccess

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/template_strings

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/raw

http://www.2ality.com/2015/01/es6-strings.html

https://msdn.microsoft.com/en-us/library/dn889830(v=vs.94).aspx

唯一能理解的是,它用于获取模板字符串的原始字符串形式,并用于调试模板字符串.

什么时候可以用于实时开发?他们称之为标签功能.那是什么意思?

我错过了哪些具体的用例?

javascript rawstring ecmascript-6 template-strings

27
推荐指数
2
解决办法
8503
查看次数

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

clojure有原始字符串吗?

在Python中,我可以r为字符串文字(原始字符串)添加前缀,以告诉解释器不要在字符串中翻译特殊字符:

>>> r"abc\nsdf#$%\^"
r"abc\nsdf#$%\^"
Run Code Online (Sandbox Code Playgroud)

有没有办法在Clojure中做同样的事情?

escaping clojure rawstring

16
推荐指数
2
解决办法
6857
查看次数