Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何从哈希值中删除所有换行符?_Regex_Perl_Replace - Fatal编程技术网

Regex 如何从哈希值中删除所有换行符?

Regex 如何从哈希值中删除所有换行符?,regex,perl,replace,Regex,Perl,Replace,我尝试从哈希值中删除所有换行符(\n): my %var_h = ( "ID" => " This is Test This is new line TEST newline Test end "); 如何从%var\u h的值中删除所有新行 我尝试了s/\\n//g,但我无法使其工作。您运行替换的依据是什么?您似乎只想修复值,因此我将使用关键字: 另一种选择(应OP

我尝试从哈希值中删除所有换行符(
\n
):

my %var_h = (  "ID"   => " This is Test 
                           This is new line TEST 


                           newline Test end ");
如何从
%var\u h
的值中删除所有新行


我尝试了
s/\\n//g
,但我无法使其工作。

您运行替换的依据是什么?您似乎只想修复值,因此我将使用关键字:

另一种选择(应OP的要求)是使用地图和切片,尽管我发现它不太清晰:

@var_h{keys %var_h} = map { s/\n//g } values %var_h;

你要用什么来代替?您似乎只想修复值,因此我将使用关键字:

另一种选择(应OP的要求)是使用地图和切片,尽管我发现它不太清晰:

@var_h{keys %var_h} = map { s/\n//g } values %var_h;
我们应该做到这一点


应该可以做到这一点。

所有其他解决方案都会从哈希的所有值中删除\n

我不确定是否需要这样做

因此,要仅从这一个值中删除,您必须:

$var_h{'ID'} =~ s/\r?\n//g;

从技术上讲,s/\n//g应该足够了,但我有添加\r\n的习惯?在此之前,它也将处理Windows样式的新行。

所有其他解决方案将从哈希的所有值中删除\n

我不确定是否需要这样做

因此,要仅从这一个值中删除,您必须:

$var_h{'ID'} =~ s/\r?\n//g;


从技术上讲,s/\n//g应该足够了,但我有添加\r\n的习惯?在此之前,它还将处理Windows样式的新行。

还有其他方法吗?我添加了第二种方法。但是你想要一个完全不使用
值的方法吗?@var_h{values%var_h}需要是@var_h{keys%var_h}-另外,我不确定键和值是否保证以相同的顺序返回…@ijw-我真蠢,谢谢你的提醒。我相信它们以相同的顺序返回,但我必须检查@ijw-键、值和每个值都保证以相同的顺序返回。请参阅perldoc-f值|键|每个键都有其他方法来完成此操作我添加了第二种方法。但是你想要一个完全不使用
值的方法吗?@var_h{values%var_h}需要是@var_h{keys%var_h}-另外,我不确定键和值是否保证以相同的顺序返回…@ijw-我真蠢,谢谢你的提醒。我相信它们以相同的顺序返回,但我必须检查@ijw-键、值和每个值都保证以相同的顺序返回。请参阅perldoc-f值|键|每个键都是一个很好的点。我假设一个值只是一个例子,他可能事先不知道哪些值有或没有不需要的换行符。这些额外的字符怎么能进入呢?精灵?我没有太多考虑新线是如何到达那里的。我脑海中浮现出:糟糕的用户输入、错误的正则表达式捕获、十足的脏话和程序员错误。@Telemachus我在问神奇的额外功能。OP的要求是删除\n的。@Sinan:真正的优势精灵,在这种情况下,这是一个很好的观点。我假设一个值只是一个例子,他可能事先不知道哪些值有或没有不需要的换行符。这些额外的字符怎么能进入呢?精灵?我没有太多考虑新线是如何到达那里的。我脑海中浮现出:糟糕的用户输入、错误的正则表达式捕获、十足的脏话和程序员错误。@Telemachus我在问神奇的额外功能。OP的要求是删除\n。@Sinan:really Advantage精灵,在这种情况下,我现在看到你的问题是,当你不想逃跑时,你正在逃离'\n'。(除非这是问题中的一个输入错误。)我现在可以看出,您的问题是您在逃避“\n”而您不想这样做。(除非这是问题中的一个输入错误。)我非常震惊这是可行的(因为值不复制),但我只是用一个更简单的例子进行了测试。@Unknown Google:是的,值不复制,并且将别名用于它们。不过,键是复制的。我对它的工作原理(值不复制)感到非常震惊,但我只是用一个更简单的例子进行了测试。@Unknown Google:是的,值不复制,并且将别名用于它们。不过,钥匙确实会复制。