gpt4 book ai didi

regex - 在 Perl 中,除了双引号外,我如何去除字符串中的空格,并将这些引号替换为 ||?

转载 作者:行者123 更新时间:2023-12-02 05:38:08 30 4
gpt4 key购买 nike

我正在尝试找到一种方法,用竖线 (||) 替换空格和双引号,同时保持双引号内的空格不变。

例如,它会将'word "word word"word'变成'word||word word||word',将'word word word'变成'word||word||word'。

现在我要解决这个问题:

[%- MACRO typestrip(value) PERL -%]
my $htmlVal = $stash->get('value');
$htmlVal =~ s/"/||/g;
print $htmlVal
[%- END -%]

它可以很好地处理用管道替换双引号。

我不知道这应该有多简单或多复杂,或者它是否可以完成,因为我没有实际的编程背景,虽然我使用过一些 Perl,但以前从未有过这种情况,所以我如果我没有很好地解释这一点,请道歉。

最佳答案

我认为使用核心模块可能更容易 Text::ParseWords拆分非引号空格,然后用管道重新加入“单词”。

#!/usr/bin/env perl

use warnings;
use strict;

use Text::ParseWords;

while (my $line = <DATA>) {
print space2pipes($line);
print "\n";
}

sub space2pipes {
my $line = shift;
chomp $line;
my @words = parse_line( qr/\s+/, 0, $line );
return join '||', @words;
}

__DATA__
word "word word" word
word word word

将其放入您的模板引擎留给读者作为练习:-)

关于regex - 在 Perl 中,除了双引号外,我如何去除字符串中的空格,并将这些引号替换为 ||?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11232607/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com