我正在尝试提取美元价值之间的文本块。例如下面的文本:
$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个方块。
block1应该具有:
1
0000
0000
Some Text1
some Text1
block2应该具有:
123A
Some Text 2
block3应该有
000
Some Text 3
下面是我写的正则表达式:
(\$[0-9]{1,3}\.[0-9]{1,2})(?<Text>.*?)(\$[0-9]{1,3}\.[0-9]{1,2})
该正则表达式将返回我块1及块3.我怎样才能块2呢?
是否也可以立即获得文本块?
您可以将最后一个捕获组转换为正向超前,并添加一个替代字符串以匹配字符串结尾:
(\$[0-9]{1,3}\.[0-9]{1,2})\s*(?<Text>.*?)(?=\$[0-9]{1,3}\.[0-9]{1,2}|$)
^^^ ^^
请参阅regex演示。
的(?=\$[0-9]{1,3}\.[0-9]{1,2}|$)
正预测先行要求要么\$[0-9]{1,3}\.[0-9]{1,2}
($
,一到三位数字,.
一个或两个数字)或(|
串(的)端$
)立即出现在当前的位置的右侧。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句