相关疑难解决方法(0)

字符串列出python中的转换?

我有一个字符串:

searchString = "u:sads asdas asdsad n:sadasda as:adds sdasd dasd a:sed eee"
Run Code Online (Sandbox Code Playgroud)

我想要的是列表:

["u:sads asdas asdsad","n:sadasda","as:adds sdasd dasd","a:sed eee"]
Run Code Online (Sandbox Code Playgroud)

我所做的是:

values = re.split('\s', searchString)
mylist = []
word = ''
for elem in values:
  if ':' in elem:
    if word:
      mylist.append(word)
    word = elem
  else:
    word = word + ' ' + elem
list.append(word)
return mylist
Run Code Online (Sandbox Code Playgroud)

但我想在python 2.6中使用优化代码.

谢谢

python regex

7
推荐指数
1
解决办法
1668
查看次数

两个非常接近的正则表达式在Python中具有前瞻性断言 - 为什么re.split()表现不同?

我试图解决这个问题,其中OP有以下​​字符串:

"path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism"
Run Code Online (Sandbox Code Playgroud)

并希望将其拆分以获得以下列表:

['path:bte00250 Alanine, aspartate and glutamate metabolism', 'path:bte00330 Arginine and proline metabolism']
Run Code Online (Sandbox Code Playgroud)

我试图通过在正则表达式中使用简单的先行断言来解决它(?=path:).好吧,它不起作用:

>>> s = "path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism"
>>> r = re.compile('(?=path:)')
>>> r.split(s)
['path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism']
Run Code Online (Sandbox Code Playgroud)

但是,在这个答案中,应答者通过在前瞻断言之前使用空格来使其工作:

>>> line = 'path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism'
>>> re.split(' (?=path:)', …
Run Code Online (Sandbox Code Playgroud)

python regex lookahead

2
推荐指数
1
解决办法
363
查看次数

标签 统计

python ×2

regex ×2

lookahead ×1