gpt4 book ai didi

正则表达式查找 $ 符号之间的文本 block

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

我正在尝试提取美元值之间的文本 block 。例如下面的文本:

$12.33  
1
0000
0000
Some Text 1 line1
Some Text 1 line2
$0.00
123A
some Text 2
$12.34
000
some text 3
$90.33

我希望我的正则表达式能为我提供 3 个区 block 。

block 1应该有:

1  
0000
0000
Some Text1
some Text1

block 2应该有:

123A  
Some Text 2

block 3应该有

000  
Some Text 3

下面是我写的正则表达式:

(\$[0-9]{1,3}\.[0-9]{1,2})(?<文本>.*?)(\$[0 -9]{1,3}\.[0-9]{1,2})

regex正在返回 block 1 和 block 3。我怎样才能也获得 block 2?

是否也可以获取立即的文本 block ?

最佳答案

如果其他行在行首不包含 $ ,则仅提取数字行之后的部分。它不会检查两个 $ 数字行之间是否匹配。

/^\$\d{1,3}\.\d{1,2}\h*\R\K(?:^[^$].+\R)+/m

See demo at regex101 (PCRE 模式)。


此变体捕获两个部分,检查中间部分并接受任何行开头。

/^(\$\d{1,3}\.\d{1,2})(?:\h*\R((?:^.+\R)+?)(?=(?1)))?/m

See another demo at regex101 (PCRE 模式也是如此)。

关于正则表达式查找 $ 符号之间的文本 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52086497/

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