【发布时间】:2016-04-28 20:25:39
【问题描述】:
我有一个长字符串需要分组解析,但需要更多控制。
import re
RAW_Data = "Name Multiple Words Testing With 1234 Numbers and this stuff* ((Bla Bla Bla (Bla Bla) A40 & A41)) Name Multiple Words Testing With 3456 Numbers and this stuff2* ((Bla Bla Bla (Bla Bla) A42 & A43)) Name Multiple Words Testing With 78910 Numbers and this stuff3* ((Bla Bla Bla (Bla Bla) A44 & A45)) Name Multiple Words Testing With 1234 Numbers and this stuff4* ((Bla Bla Bla (Bla Bla) A46 & A47)) Name Multiple Words Testing With 1234 Numbers and this stuff5* ((Bla Bla Bla (Bla Bla) A48 & A49)) Name Multiple Words Testing With 1234 Numbers and this stuff6* ((Bla Bla Bla (Bla Bla) A50 & A51)) Name Multiple Words Testing With 1234 Numbers and this stuff7* ((Bla Bla Bla (Bla Bla) A52 & A53)) Name Multiple Words Testing With 1234 Numbers and this stuff8* ((Bla Bla Bla (Bla Bla) A54 & A55)) Name Multiple Words Testing With 1234 Numbers and this stuff9* ((Bla Bla Bla (Bla Bla) A56 & A57)) Name Multiple Words Testing With 1234 Numbers and this stuff10* ((Bla Bla Bla (Bla Bla) A58 & A59)) Name Multiple Words Testing With 1234 Numbers and this stuff11* ((Bla Bla Bla (Bla Bla) A60 & A61)) Name Multiple Words Testing With 1234 Numbers and this stuff12* ((Bla Bla Bla (Bla Bla) A62 & A63)) Name Multiple Words Testing With 1234 Numbers and this stuff13* ((Bla Bla Bla (Bla Bla) A64 & A65)) Name Multiple Words Testing With 1234 Numbers and this stuff14* ((Bla Bla Bla (Bla Bla) A66 & A67)) Name Multiple Words Testing With 1234 Numbers and this stuff15* ((Bla Bla Bla (Bla Bla) A68 & A69)) Name Multiple Words Testing With 1234 Numbers and this stuff16*"
fromnode = re.findall('(.*?)(?=\*\s)', RAW_Data)
print fromnode
del fromnode
del RAW_Data
结果是:'Name Multiple Words Testing With 1234 Numbers and this stuff', '', ' ((Bla Bla Bla (Bla Bla) A40 & A41)) Name Multiple Words Testing With 3456 Numbers and this stuff2' ........等等。
我似乎无法仅捕获诸如“使用 3456 个数字和这些东西命名多个单词测试”之类的字符串,而忽略所有诸如“((Bla Bla Bla (Bla Bla) A40 & A41))”之类的字符串。任何帮助将不胜感激。
【问题讨论】:
-
Bla...的内容是否总是在括号中并且Name Mul...的措辞总是相同? -
你只想要括号外的东西吗?
-
是的,Bla Bla Bla 的东西总是在双括号内构成。那里还有一组单括号。我使用另一个 re.findall(('(((.*?))', RAW_Data) 来捕获这些部分。现在我想忽略它们。Name Mul.... 不过不会总是一样的。我在那里转储了一些文本,以包含多个单词、空格和数字,以作为一个包罗万象的内容。
-
@Laurel 是的,我几乎只想要括号之外的东西。类似于“用 1234 个数字和这些东西命名多个单词测试”、用 1234 个数字和这个东西命名多个单词测试”等所有组...
-
你不能只替换括号中的所有内容,为什么?