标签: string-literals

将javascript字符串转换为数组

我正在从隐藏的html输入字段中检索一个对象数组.我得到的字符串是:

"{"id":"1234","name":"john smith","email":"jsmith@blah.com"},{"id":"4431","name":"marry doe","email":"mdoe@blah.com"}"
Run Code Online (Sandbox Code Playgroud)

现在我需要再次将其作为一个对象数组传递.如何将此字符串转换为对象数组?

javascript arrays literals string-literals

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

antlr 文字字符串匹配:我做错了什么?

我已经使用antlr 3天了。我可以解析表达式、编写侦听器、解释解析树...这是梦想成真。

但后来我尝试匹配文字字符串“foo%”,但失败了。我可以找到很多声称可以做到这一点的例子。我都试过了。

所以我创建了一个小项目来匹配文字字符串。我一定是在做一些愚蠢的事情。

grammar Test;

clause
  : stringLiteral EOF
  ;

fragment ESCAPED_QUOTE : '\\\'';
stringLiteral :   '\'' ( ESCAPED_QUOTE | ~('\n'|'\r') ) + '\'';
Run Code Online (Sandbox Code Playgroud)

简单测试:

public class Test {

    @org.junit.Test
    public void test() {
        String input = "'foo%'";
        TestLexer lexer = new TestLexer(new ANTLRInputStream(input));
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        TestParser parser = new TestParser(tokens);
        ParseTree clause = parser.clause();
        System.out.println(clause.toStringTree(parser));

        ParseTreeWalker walker = new ParseTreeWalker();
    }
}
Run Code Online (Sandbox Code Playgroud)

结果:

Running com.example.Test
line 1:1 token recognition error at: 'f'
line 1:2 token …
Run Code Online (Sandbox Code Playgroud)

string-literals antlr4

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

谷歌应用程序脚本中有哪些可用的字符串文字?

在 google apps 脚本中寻找一些类似于 ES6 javascript 的东西。

Ss.main.getRange('C2').setValue('${Ss.main.getRange(2,2).getDisplayValue()}')
Run Code Online (Sandbox Code Playgroud)

预期 C2 单元格等于 B2 中的值。相反我得到${Ss.main.getRange(2,2).getDisplayValue()}

javascript string-literals google-apps-script

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

使用带有字符指针的 strcat 函数

我想通过使用两个字符指针来打印“Hello - World”,但我有一个“分段错误(核心转储)”问题。

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define Hyphen " - "
int main()
{
  char* x="Hello";
  char* y="'World'";
  strcat(x, Hyphen);
  strcat(x, y);
  printf("%s",x);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c pointers string-literals strcat

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

C:所有字符串文字都具有静态存储持续时间吗?

我一直在阅读各种来源,字符串文字在程序的整个生命周期中都保留在内存中。在那种情况下,这两个函数之间有什么区别

char *f1() { return "hello"; }
char *f2() {
   char str[] = "hello";
   return str;
}
Run Code Online (Sandbox Code Playgroud)

虽然f1编译正常,但f2抱怨我正在返回堆栈分配的数据。这里会发生什么?

  • 如果str指向实际的字符串文字(具有静态持续时间),为什么会出现错误?
  • 如果字符串文字被复制到局部变量str,那么原始字符串文字去哪里了?它是否保留在内存中而不引用它?

c arrays initialization string-literals implicit-conversion

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

如何在 TypeScript 的字符串文字中省略字符串

我知道我们可以Omit<>在没有特定道具的情况下输入某个对象。我希望我们也可以将它用于字符串文字:

type possibleStrings = 'A' | 'B' | 'C'

type AorB = Omit<possibleStrings, 'C'>
Run Code Online (Sandbox Code Playgroud)

但是当尝试在函数中为其参数使用类似的东西时,我收到此错误:

类型“Pick”不能用作索引类型。

string-literals typescript

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

返回从字符串文字创建的静态 string_view 是否安全?

我有一个相对简单的用例:我想将一个特征关联到一个类,该类将返回一些用户定义的字符串,即一些用户定义的注册 ID。由于这个注册应该在编译时定义,我希望它是 constexpr,所以我写了如下内容:

template <typename T>
struct ClassRegistration
{
    static constexpr std::string_view
    Name();
};

template <>                                                                                    
struct ClassRegistration<int>                                                            
{                                                                                              
    static constexpr std::string_view                                                        
    Name()                                                                                     
    {                                                                                          
        return std::string_view{ "int" };                                                     
    }                                                                                          
};
Run Code Online (Sandbox Code Playgroud)

https://godbolt.org/z/5p8xkA

一切正常,但由于 string_view 实际上并不拥有它的缓冲区,我想知道它是否保证安全,我不只是指一个悬空指针。从我读到的字符串文字保证具有与程序本身一样长的生命周期(从这个函数返回的字符串文字的SO Lifetime)。

因此,string_view 的这种用法是否安全合适?

c++ string-literals constexpr string-view c++17

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

如何在 C++17 中定义用户定义的字符串文字运算符模板?

根据我的C++17(草案)版本(16.5.8 [over.literal]) 以及cppreference.com,C++17应该支持用户定义的字符串文字的模板化运算符。

具体来说:

template <char...>
double operator "" _pi() {
    return 0.;
}

int main() {
  "test"_pi;
}
Run Code Online (Sandbox Code Playgroud)

然而,gcc 和 clang 都对我大喊大叫:

// gcc -Wall -Wextra -pedantic -std=c++17
error: no matching function for call to 'operator""_pi<char, 't', 'e', 's', 't'>()'
    7 |   "test"_pi;
      |   ^~~~~~~~~
note: candidate: 'template<char ...<anonymous> > double operator""_pi()'
    2 | double operator "" _pi() {

// clang -Wall -Wextra -pedantic -std=c++17
error: no matching literal operator for call to …
Run Code Online (Sandbox Code Playgroud)

c++ g++ string-literals clang++ c++17

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

包含 Windows 路径的原始字符串会产生“SyntaxError:未终止的字符串文字”

我正在尝试使用我找到的 Shutil 脚本,但它收到了SyntaxError: unterminated string literal (detected at line 4). 任何有关修复此脚本或新脚本的帮助将不胜感激

import shutil
import os

source = r"C:\Users\[username]\Downloads\"
dest1 = r" C:\Users\[username]\Desktop\Reports\14"
dest2 = r" C:\Users\[username]\Desktop\Reports\52"
dest3 = r" C:\Users\[username]\Desktop\Reports\59"

files = os.listdir(source)

for f in files:
   
 if (f.startswith("Log 14")):
        shutil.move(f, dest1)
    elif (f.startswith("Log 54")):
        shutil.move(f, dest2)
Run Code Online (Sandbox Code Playgroud)

python syntax string-literals

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

在 C++17 和 C++20 之间可移植地使用 UTF-8 字符串文字前缀

我有一个用 C++17 编写的代码库,它大量使用 UTF-8,以及u8c++11 中引入的字符串文字来指示 UTF 编码。然而,c++20 将C++ 中u8文字的含义从生成 a charor更改const char*为 a char8_tor const char8_t*;后者不能隐式指针转换const char*.

我希望这个项目能够支持在 C++17 和 C++20 模式下运行而不会出现中断;可以采取什么措施来支持这一点?


目前,该项目使用的char8别名使用文字的类型结果u8

// Produces 'char8_t' in C++20, 'char' in anything earlier
using char8 = decltype(u8' ');
Run Code Online (Sandbox Code Playgroud)

但这种方法存在一些问题:

  1. char不保证是无符号的,这使得从数值生成代码点不可移植(例如,char8{129}用 中断char,但不能用 中断char8_t)。

  2. char8char与C++17 中没有区别,后者可能会破坏现有代码,并可能导致错误。

  3. 从第 2 点继续,不可能在 C++17 中重载char …

c++ utf-8 string-literals c++17 c++20

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