ISBN编号带有随机短划线位置
978-618-81543-7-7
9786-18-81-5437-7
97-86-18-81-5437-7
我怎么能在不知道冲刺位置的情况下每次都能得到它们?
答案 0 :(得分:3)
只需使用您选择的语言删除每个-
。
使用Ruby:
"978-618-81543-7-7".delete('-')
#=> "9786188154377"
如果你真的想使用正则表达式:
"978-618-81543-7-7".gsub(/-/,'')
如果你有多行isbns:
isbns = "978-618-81543-7-7
9786-18-81-5437-7
97-86-18-81-5437-7"
p isbns.scan(/\b[-\d]+\b/).map{|number_and_dash| number_and_dash.delete('-')}
#=> ["9786188154377", "9786188154377", "9786188154377"]
答案 1 :(得分:1)
很容易使用正则表达式,谷歌它可以了解更多。在Python中:
import re
nums=re.findall('\d+',isbnstring)
这将给出一个数字列表。要将它们连接到字符串:
isbn=''.join(nums)
根据下面的评论,如果你正在处理一个文件,你可以逐行工作:
with open(isbnfile) as desc:
for isbnstring in desc:
#Do the above and more.
作为一个例子。有很多方法可以做到这一点。我刚从命令行sed
意识到这也是一个不错的选择:
sed 's/-//g' isbnfile > newisbnfile