Python 用连字符分割字符串

Python 用连字符分割字符串,python,regex,Python,Regex,我有一个格式为英尺-英寸(即18'-6“)的字符串,我想将其拆分,以便将英尺和英寸的值分开 我试过: re.split(r'\s|-', `18'-6`) 但它仍然返回18'-6 所需输出:[18,6]或类似输出 谢谢 只需正常拆分,替换”: s="18'-6" a, b = s.replace("'","").split("-") print(a,b) 如果同时有“和”两个字符,则必须转义其中一个,因此只需拆分并切片到最后一个字符: s = "18'-6\"" a, b = s.spl

我有一个格式为英尺-英寸(即
18'-6“
)的字符串,我想将其拆分,以便将英尺和英寸的值分开

我试过:

re.split(r'\s|-', `18'-6`)
但它仍然返回
18'-6

所需输出:
[18,6]
或类似输出


谢谢

只需正常拆分,替换

s="18'-6"

a, b = s.replace("'","").split("-")
print(a,b)
如果同时有
两个字符,则必须转义其中一个,因此只需拆分并切片到最后一个字符:

s = "18'-6\""

a, b = s.split("-")
print(a[:-1], b[:-1])
18 6

内置的split方法可以接受一个参数,该参数将导致它在指定点进行拆分

"18'-16\"".replace("'", "").replace("\"", "").split("-")
一行:)

您可以使用

import re
p = re.compile(ur'[-\'"]')
test_str = u"18'-6\""
print filter(None,re.split(p, test_str))
输出:

[u'18', u'6']

一个列表理解就可以做到这一点:

In [13]: [int(i[:-1]) for i in re.split(r'\s|-', "18'-6\"")]
Out[13]: [18, 6]

这假设字符串的格式为
feet(int)'-inches(int)
,并且您正在尝试返回实际的
int
s,而不仅仅是字符串格式的数字。

只需使用
my_str.split('-')
。请。谢谢,还有什么方法可以删除第二个字符串末尾的
”吗?@mp2150,只需从
[:-1]
@rmp2150中索引列表中的每个项目,您的字符串的实际格式是什么?我假设您有一个开头
,否则您的字符串无效。我最后使用了
s.replace(“,”).replace(“,”),”).split(“-”)
效果很好。我解决问题的方法是否有问题?b/c它工作正常。您可以像第二个示例中那样将两端切掉,但无论哪种方法都不会有太大区别