在python中,我想执行一个奇特的查找和替换操作。我对正则表达式不是很熟悉,但我认为这可能是使用re.sub
并且可能是一些奇特的分组。我怀疑这是一个班轮,但我还没弄明白。
我有一个格式为"SomeText 123.456.Thing SomeMoreText"
的字符串,其中:
"SomeText"
& "SomeMoreText"
可能存在也可能不存在。123
是一个长度介于1和4(0到0000)之间的整数。456
是一个长度介于1到3之间的整数(0到000),Thing
的长度至少为一个字符。*[0-9]{1,4}\.[0-9]{1,3}\.*
我想将其转换为"SomeText A123B456.Thing SomeMoreText"
格式的字符串,其中:
A
(常数)已在123 B
(常数)已在456 .
已被删除Thing
是.456
之后SomeMoreText
非常感谢提前。
答案 0 :(得分:0)
所以基本上删除第一个点?
<sellers-upcoming-auctions *ngIf="auction" [sellerid]="auction.SellerUserId" take="4"></sellers-upcoming-auctions>
输出import re
str = "SomeText A123.B456.Thing SomeMoreText"
print(re.sub("\.", "", str, 1))
答案 1 :(得分:0)
使用捕获群组获取SomeText
,123
,456
,Thing
和SomeMoreText
re.sub(r'(.*) (\d{1,4})\.(\d{1,3})\.(.+) (.*)', r'\1 A\2B\3.\4 \5', "SomeText 123.456.Thing SomeMoreText")
输出:
'SomeText A123B456.Thing SomeMoreText'
编辑:上面对空格做了一些假设。您也可以尝试
re.sub(r'(.*?)(\d+).(\d+).(.*)', r'\1A\2B\3.\4', "SomeText 123.456.Thing SomeMoreText")