如何只匹配其中只有数字的单词周围的引号?
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+)\"
替换为:
如何匹配数字周围的引号: 这是我拥有的:
"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+)\"
替换为: