简体   繁体   中英

Split string by hyphen

I have a strings in the format of feet'-inches" (ie 18'-6" ) and I want to split it so that the values of the feet and inches are separated.

I have tried:

re.split(r'\s|-', `18'-6`)

but it still returns 18'-6 .

Desired output: [18,6] or similar

Thanks!

Just split normally replacing the ' :

s="18'-6"

a, b = s.replace("'","").split("-")
print(a,b)

If you have both " and ' one must be escaped so just split and slice up to the second last character:

s = "18'-6\""

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

You can use

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

Output:

[u'18', u'6']

Ideone demo

A list comprehension will do the trick:

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

This assumes that your string is of the format feet(int)'-inches(int)" , and you are trying to get the actual int s back, not just numbers in string format.

The built-in split method can take an argument that will cause it to split at the specified point.

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

A one-liner. :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM