gpt4 book ai didi

regex - 如何在 perl 正则表达式中跨换行符匹配?

转载 作者:行者123 更新时间:2023-12-02 05:37:39 24 4
gpt4 key购买 nike

我正在尝试找出如何使用 perl(来自 shell)匹配换行符。下列的:

(echo a b c d e; echo f g h i j; echo l m n o p) | perl -pe 's/(c.*)/[$1]/'

我明白了:
a b [c d e]
f g h i j
l m n o p

这是我所期望的。但是当我放置一个 /s在我的正则表达式结束时,我得到了这个:
a b [c d e
]f g h i j
l m n o p

我期望并希望它打印的是:
a b [c d e
f g h i j
l m n o p
]

是我的正则表达式有问题,还是我的 perl 调用标志?

最佳答案

-p逐行循环输入,其中“行”由 $/ 分隔, 输入记录分隔符,默认为换行符。如果您想将所有 STDIN 放入 $_对于匹配,使用 -0777 .

$ echo "a b c d e\nf g h i j\nl m n o p" | perl -pe 's/(c.*)/[$1]/s'
a b [c d e
]f g h i j
l m n o p
$ echo "a b c d e\nf g h i j\nl m n o p" | perl -0777pe 's/(c.*)/[$1]/s'
a b [c d e
f g h i j
l m n o p
]

Command Switches in perlrun有关这两个标志的信息。 -l (dash-ell) 也很有用。

关于regex - 如何在 perl 正则表达式中跨换行符匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13927672/

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