gpt4 book ai didi

regex - TRegExpr为什么(。* $)表达式在字符串上可以工作两次?

转载 作者:行者123 更新时间:2023-12-03 19:32:46 25 4
gpt4 key购买 nike

我正在用TRegExpr解析字符串。表达式看起来像:

(.*$)


这意味着它应该找到整个字符串,但是当我使用命令 ExecNext找到它之后,它找到了空字符串,但是由于 $符号,行已经结束了。

有人可以解释这种行为吗?

最佳答案

那是因为*量词。它将匹配之前出现0次或多次的字符。出现0表示它将匹配空字符串。

$anchor,零宽度断言。它与字符串的末尾不匹配,而是与字符串的末尾(或作为字符串中最后一个字符的换行符)之前的位置匹配。

那会发生什么呢?


您的正则表达式首先匹配字符串,直到字符串结尾。
正则表达式引擎的位置在最后一个字符之后,但在字符串末尾之前。现在调用ExecNext时,它与字符串末尾的空字符串匹配。


如果要避免这种情况,请使用+量词,它将需要至少一个字符来匹配==> .+$仅找到一个匹配项。

关于regex - TRegExpr为什么(。* $)表达式在字符串上可以工作两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673441/

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