如何将正则表达式提取的字符串转换为python中的整数?

我正在尝试将字符串转换为整数,但这并没有我想象的那么容易。


content = '''

<entry colname="1" morerows="1" morerowname="2"><p>111</p></entry>

<entry colname="2" rowname="2"><p></p></entry>'''



morerows = ''.join(re.findall('morerows="\d"', content))

morerows_n = int(''.join(re.findall('\d', morerows)))

print(morerows_n)

结果错误如下:


morerows_n = int(''.join(re.findall('\d', morerows)))

ValueError: invalid literal for int() with base 10: ''

那个代码哪里错了?我试过 int() 函数但不起作用,它也不是浮动的。


有什么帮助吗?


一只名叫tom的猫
浏览 216回答 1
1回答

慕虎7371278

我猜在您的真实情况下,morerows 属性中有非整数字符。How about this:content = '''<entry colname="1" morerows="1x" morerowname="2"><p>111</p></entry><entry colname="1" morerows="1" morerowname="2"><p>111</p></entry><entry colname="2" rowname="2"><p></p></entry>'''morerows = ''.join(re.findall('morerows="[0-9]+"', content))if morerows:&nbsp; &nbsp; morerows_n = int(''.join(re.findall('\d', morerows)))print(morerows_n)使用[0-9]+代替\d
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python