标签: backslash

Java:忽略转义序列

对于我的命令行界面,在开头有一个小的ASCII艺术通常很好,但那些通常包含许多反斜杠.

例如:

System.out.println("  _____ _______       _____ _  __ ");
System.out.println(" / ____|__   __|/\   / ____| |/ / ");
System.out.println("| (___    | |  /  \ | |    | ' /  ");
System.out.println(" \___ \   | | / /\ \| |    |  <   ");
System.out.println(" ____) |  | |/ ____ \ |____| . \  ");
System.out.println("|_____/   |_/_/    \_\_____|_|\_\ ");
Run Code Online (Sandbox Code Playgroud)

但由于每个"\"需要一个"\\"这往往代码看起来很丑陋,它是很难找到/在"字体"修正错误.有没有办法告诉Java NOT使用转义序列?

java escaping backslash ascii-art

7
推荐指数
1
解决办法
6771
查看次数

在Python中处理反斜杠作为命令行参数

我知道在编程中逃避反斜杠.但是我将命令行参数传递给Python程序进行解析.空白是无关紧要的,但是通过命令行,空格确实很重要.所以我试图将除第一个元素之外的所有argv []参数连接到一个字符串然后解析.但是,在for循环中永远不会遇到单个'\'的标记.

命令行参数(注意'\'周围的空格):

((1 * 2) + (3 - (4 \ 5)))
Run Code Online (Sandbox Code Playgroud)

程序:

import sys
string = ""
for token in sys.argv[1:len(sys.argv)]:
    print(token)
    if "\\" in r"%r" % token:
        print("Token with \\ found")
    string += token
print(string)
print("done")
Run Code Online (Sandbox Code Playgroud)

python string backslash command-line-arguments

7
推荐指数
1
解决办法
2648
查看次数

正则表达式替换单个反斜杠,不包括那些后跟某些字符的反斜杠

我有一个正则表达式,如果没有后跟其中一个字符,则从字符串中删除任何反斜杠:\ /或}.

它应该变成这个字符串:

foo\bar\\batz\/hi
Run Code Online (Sandbox Code Playgroud)

进入:

foobar\\batz\/hi
Run Code Online (Sandbox Code Playgroud)

但问题在于它正在处理每个反斜杠.因此它遵循规则,因为它删除了第一个反斜杠,并忽略第二个反斜杠,因为它后跟另一个反斜杠.但当它到达第3个时,它会删除它,因为它不会被另一个跟随.

我当前的代码如下所示: str.replace(/\\(?!\\|\/|\})/g,"")

但结果字符串如下所示: foobar\batz\/hi

如何让它跳过第3个反斜杠?或者这是一种做某种明确的否定搜索和替换类型的事情?例如.替换'\',但不要替换'\\','\ /'或'\}'?

请帮忙!:)

编辑

对不起,我应该解释一下 - 我使用的是javascript,所以我不认为我可以做负面的lookbehinds ...

javascript regex replace backslash

6
推荐指数
1
解决办法
7519
查看次数

在Python中避免使用长行代码

我尝试将代码保持在80个字符以内,因此很容易在我设置的标准窗口中并排查看.在这样做时,我有一个像这样的Python v2.7结构:

subseq_id_to_intervals_dict, subseq_id_to_ccid_formats_dict, subseq_id_to_min_max_count_dict = map_cases(opts,
                                            format_to_ccid_funcs,
                                            sys.stdin)
Run Code Online (Sandbox Code Playgroud)

所以我把它分解成这样:

subseq_id_to_intervals_dict,
subseq_id_to_ccid_formats_dict,
subseq_id_to_min_max_count_dict = map_cases(opts,
                                            format_to_ccid_funcs,
                                            sys.stdin)
Run Code Online (Sandbox Code Playgroud)

但那导致了错误

NameError:未定义名称"subseq_id_to_intervals_dict"

直到我添加反斜杠:

subseq_id_to_intervals_dict,        \
subseq_id_to_ccid_formats_dict,     \
subseq_id_to_min_max_count_dict = map_cases(opts,
                                            format_to_ccid_funcs,
                                            sys.stdin)
Run Code Online (Sandbox Code Playgroud)

为什么行尾的逗号不足以告诉Python理解语法而不会出错?有没有反斜杠的清洁方法吗?

python newline backslash python-2.7

6
推荐指数
1
解决办法
621
查看次数

为什么clang和gcc只有在反斜杠后有空格时才会发出警告,如果C标准说禁止空格?

编译以下代码段时,gcc和clang都只发出警告.注意\下一个后面的空格int:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int \ 
        a = 10;

    printf("%d\n", a);
}
Run Code Online (Sandbox Code Playgroud)

GCC:

main.c:7:6:警告:反斜杠和换行符以空格分隔[默认启用]

铛:

main.c:7:7:警告:反斜杠和换行符以空格分隔int ^

在5.1.1.2的c99标准中,它说:

删除反斜杠字符()后面紧跟一个新行字符的每个实例,拼接物理源代码行以形成逻辑源代码行.

为什么C编译器不符合C标准?我认为只有他们的创作者决定不这样做.我在gcc邮件列表上发现了一条消息,我认为这引起了这种行为:http://gcc.gnu.org/ml/gcc-patches/2000-09/msg00430.html.在那里,他们说这是完成的,因为尾随空格是常见的,他们不想将它们视为错误.这有多常见?

c standards gcc clang backslash

6
推荐指数
1
解决办法
1133
查看次数

Python:用反斜杠连接元组

我尝试使用 .join 方法连接两个字符串的元组,如下所示。

>>> my_tuple = ("parent", "child")
>>> "\\".join(my_tuple)
Run Code Online (Sandbox Code Playgroud)

我希望它会回来parent\child,然而,它又回来了parent\\child

为什么是这样?如果我尝试简单地打印它,则用另一个反斜杠转义反斜杠效果很好。

>>> print "parent\\child"
>>> parent\child
Run Code Online (Sandbox Code Playgroud)

在 Windows 7 上的 Python 2.7.3 中观察到。

python join tuples backslash

6
推荐指数
1
解决办法
3053
查看次数

从 android 中的 Json 字符串中删除反斜杠

我需要一些帮助来从 Json 字符串中删除反斜杠。

这是我从服务器端获得的响应。

"response":"{\"time_zone\":\"\",\"session_token\":\"abcdefgHijklomopqrstuvwxyz\",\"user_login\":\"abc\",\"user_profile_img\":\"http://jhjhjhj.org/system/photos/62/medium/images.jpg?1462446436\",\"success\":\"0\",\"org_admin\":\"\",\"user_id\":\"62\",\"user_org_id\":\"101\",\"phone_mobile\":\"510-427-9639\",\"user_email\":\"abc@pdmoffice.com\"}"}
Run Code Online (Sandbox Code Playgroud)

我为从这个字符串中删除反斜杠所做的

result.replaceAll("\\","");

比之后它会给我这个不是 Json 格式的字符串。

{"response":"{"time_zone":"","session_token":"nskfndkjfsfsdffjsdfd","user_login":"newoff2","user_profile_img":"http://absdds.org/system/photos/62/medium/images.jpg?1462446436","success":"0","org_admin":"","user_id":"62","user_org_id":"101","phone_mobile":"510-427-9639","user_email":"hjhjh@pdmoffice.com"}"}
Run Code Online (Sandbox Code Playgroud)

它给我解释

    org.json.JSONException: Unterminated object at character 17 of 

{"response":"{"time_zone":"","session_token":"kjshhdscncnxzcxclx","user_login":"newoff2","user_profile_img":"http://abcd.org/system/photos/62/medium/images.jpg?1462446436","success":"0","org_admin":"","user_id":"62","user_org_id":"101","phone_mobile":"510-427-9898","user_email":"sdgas@pdmoffice.com"}"}
Run Code Online (Sandbox Code Playgroud)

如何使用正确的 Json 格式删除此反斜杠?

提前致谢

java parsing android json backslash

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

Laravel 蓝图默认函数的奇怪反斜杠行为

我正在尝试通过 Laravel 的迁移系统向 MySQL 中的列添加默认值。下列:

$table->string(...)->default('App\User')->change(); // OR
$table->string(...)->default('App\\User')->change();
Run Code Online (Sandbox Code Playgroud)

生成默认值AppUser代替App\User。如果我这样做:

$table->string(...)->default('App\\\User')->change();
Run Code Online (Sandbox Code Playgroud)

然后它会产生一个默认值App\\User。我也尝试利用DB::raw()inside ,但得到了相同的结果。default()

知道会发生什么吗?我在任何地方都找不到有关该default()功能的任何文档。

mysql migration default-value backslash laravel

6
推荐指数
0
解决办法
884
查看次数

错误:尝试替换为反斜杠时在位置 0 处错误转义(模式结束)

我需要替换字符串中的单个反斜杠。我正在尝试执行 '\' 但它给了我双反斜杠。当我执行 '\' 时,它会在位置 0 处抛出错误错误转义(模式结束)

string = 'abrakadabra'
string.replace('a','\\')
#or
re.sub('a','\\','abrakadabra')

In [47]: string.replace('a','\'')
Out[47]: "'br'k'd'br'"

In [48]: string.replace('a','\')
 File "<ipython-input-48-e884682860ae>", line 1
string.replace('a','\')
                       ^
Run Code Online (Sandbox Code Playgroud)

语法错误:扫描字符串文字时 EOL

In [49]: string.replace('a','\\')
Out[49]: '\\br\\k\\d\\br\\'

In [50]: 
Run Code Online (Sandbox Code Playgroud)

期待结果:\br\k\d\br\

python backslash

6
推荐指数
1
解决办法
7966
查看次数

用 \\ 替换 \ 不适用于特定变量

我想更换一个\带有\\并将其与除特殊变数,我需要它的工作就一切正常。抛出错误Illegal characters in path.可能是因为它认为 \t 是一个字符,它是制表符,因此不允许在路径中

使用 Newtonsoft.Json 将变量从 json 文件加载到类中

public class WebsiteConfig
{
   public string Name { get; set; }
   public string Directory { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试过 var escapedir = Regex.Replace(Directory, @"\\", @"\");任何可能的方式来形成var escapedir = Directory.Replace("\", "\\");.

尝试Regex.Replace("C:\test", @"\", @"\\");(C:\test 与目录中的完全相同)工作得很好,然后在 foreach 中我试图将目录与文件名结合起来。

当前代码的“转储”:

var json = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "config.json"));
_config = JsonConvert.DeserializeObject<Config>(json);

foreach(WebsiteConfig website in _config.WebsiteConfigList)
{
  for (int i = 0; i <= 9; …
Run Code Online (Sandbox Code Playgroud)

c# backslash

6
推荐指数
1
解决办法
213
查看次数