如何只匹配其中只有数字的单词周围的引号?

How to match only quotes around word that has only numbers in it?

如何匹配数字周围的引号: 这是我拥有的:

"Austria","AU","ULO1","185","34","4dera"

这是我需要的:

"Austria","AU","ULO1",185,34,"4dera"

这是我做的最接近的:\"(?=\d)|(?<=\d)\", 但问题是它也匹配以数字开头的单词,我不能在后视或前视中放置 +*.。我正在尝试更改包含 1400 行的 .csv 文件。我可以用 Notepad++ 替换它,因为它支持正则表达式或 python 脚本。

list1 = ["Austria","AU","ULO1","185","34","4dera"]

list2 = []

for item in list1:    
    try:
        list2.append(int(item))
    except ValueError:
        list2.append(item)

应该 return strings 用于字符串,int 用于 list2.

中的数字

您可以使用str.isdigit()

例如:

import csv

with open(filename, "r") as infile:
    reader = csv.reader(infile)
    for row in reader:
        print([int(i) if i.isdigit() else i for i in row])

输出:

['Austria', 'AU', 'ULO1', 185, 34, '4dera']
import re
s = '"Austria","AU","ULO1","185","34","4dera"'
print(re.sub(r'"(\d+)"',r'',s))

匹配 " 中的每个数字,并将其替换为没有 " 的数字。

在记事本++中

搜索:\"(\d+)\" 替换为: