regex - Perl:如何使用起始字符提取所需的字符串但还需要包含它们?

标签 regex perl

我有这个字符串

my $word = "Chase_^%798(987%55,.#*&^*&Chase_$&^**&(()%%hjjlhh";

期望的输出是

Chase_^%798(987%55,.#*&^*&
Chase_$&^**&(()%%hjjlhh

字符串 "Chase_" 是唯一的线索,我应该使用它来区分它们。使用 split 我丢失了字符串 "Chase_"。然后我应该将它们连接起来。我对如何拆分它一无所知,但字符串 "Chase_" 应该存在。`

最佳答案

使用lookahead :

my $str = 'Chase_^%798(987%55,.#*&^*&Chase_$&^**&(()%%hjjlhh';
my @list = split(/(?=Chase_)/, $str);
say Dumper\@list;

输出:

$VAR1 = [
          'Chase_^%798(987%55,.#*&^*&',
          'Chase_$&^**&(()%%hjjlhh'
        ];

关于regex - Perl:如何使用起始字符提取所需的字符串但还需要包含它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40723636/

相关文章:

python - 从字符串中删除多个单词的更好方法?

c# - 删除破折号但不删除连字符

mysql - 在 Talend 中使用 REGEXP (MYSQL) 查找名字字段中的空格的 Select 语句

regex - 删除以 "RT"开头的行

c - Perl、C、XS - 解压 float 组

perl - 如何使用Perl检查文件的扩展名?

python - 如何修改此 REGEX 以获取测试字符串中的所有日期

linux - 在Linux服务器上使用Web应用程序来运行脚本

perl - 运行和监视进程并使用 Perl(在 Windows 上)捕获其所有输出?

windows - 我想在 Windows 下从 Perl 运行 .exe 命令