gpt4 book ai didi

regex - 多行模式下字符串开头和结尾的正则表达式

转载 作者:行者123 更新时间:2023-12-04 23:14:36 24 4
gpt4 key购买 nike

在正则表达式中,在多行模式下,^$代表行的开始和结束。如何匹配整个字符串的结尾?

在字符串中

Hello\nMary\nSmith\nHello\nJim\nDow

表达方式
/^Hello(?:$).+?(?:$).+?$/ms

匹配 Hello\nMary\Smith .

我想知道是否有一个元字符(如 \ENDSTRING )匹配整个字符串的结尾,而不仅仅是行,这样
/^Hello(?:$).+?(?:$).+?\ENDSTRING/ms

会匹配 Hello\nJim\nDow .同样,一个元字符匹配整个字符串的开头,而不是一行。

最佳答案

确实有assertions (perlre)为了那个原因

\A Match only at beginning of string
\Z Match only at end of string, or before newline at the end

...
The \A and \Z are just like ^ and $, except that they won't match multiple times when the /m modifier is used, while ^ and $ will match at every internal line boundary. To match the actual end of the string and not ignore an optional trailing newline, use \z.


另见 Assertions in perlbackslash .
我不确定你在显示的例子中想要什么,所以这里是另一个
perl -wE'$_ = qq(one\ntwo\nthree); say for /(\w+\n\w+)\Z/m'
打印



同时与 $而不是 \Z它打印



请注意,上面的示例将匹配 qq(one\ntwo\three\n)以及(带有尾随换行符),可能适合也可能不适合。请比较 \Z\z从以上报价为您的实际需求。感谢 ikegami发表评论。

关于regex - 多行模式下字符串开头和结尾的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46626258/

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