蟒蛇:如何忽略一个句子的分隔部分?

我有以下行:

CommonSettingsMandatory = #<Import Project="[\\.]*Shared(\\vc10\\|\\)CommonSettings\.targets," />#,true

,我想下面的输出:

['commonsettingsmandatory', '<Import Project="[\\\\.]*Shared(\\\\vc10\\\\|\\\\)CommonSettings\\.targets," />', 'true'

如果我做了一个简单的正则表达式使用逗号,它会如果有它的值拆分的价值,就像我写了目标后一个逗号,它会分裂这里。 所以我想忽略##之间的文本,以确保没有分裂那里。 我真的不知道该怎么办!

--------------解决方案-------------

http://docs.python.org/library/re.html#re.split

import re

string = 'CommonSettingsMandatory = #toto,tata#, true'
splitlist = re.split('\s?=\s?#(.*?)#,\s?', string)

然后splitlist包含['CommonSettingsMandatory', 'toto,tata', 'true']

虽然你可能能够使用分割与后向,我会用这个表情捕捉的群体。

(\S+)\s*=\s*##([^#]+)##,\s*(.*)

m = re.Search(expression, myString) 使用m.group(1)对于第一串, m.group(2)为第二等

如果我理解正确的话,你试图分裂使用空格作为分隔符的字符串,但您也想删除英镑符号之间的任何文字?

如果这是正确的,为什么不干脆删除分割字符串之前,英镑符号分隔的文本?

import re
myString = re.sub(r'#.*?#', '', myString)
myArray = myString.split(' ')

编辑:(基于改进的问题)

import re
myArray = re.findall(r'^(.*?) = #(.*?)#,(.*?)$', myString)

这实际上将返回元组包括您匹配的数组,形式为:

[
(
'commonsettingsmandatory',
'<Import Project="[\\\\.]*Shared(\\\\vc10\\\\|\\\\)CommonSettings\\.targets," />',
'true'
)
]

(间距加以说明的格式更好)

分类:蟒蛇 时间:2015-03-15 人气:0
本文关键词: 正则表达式,蟒蛇
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.238 (s). 10 q(s)