【发布时间】:2018-10-19 20:22:30
【问题描述】:
RANDOMSTRING 是字母数字,包含最多 50 个字符的空格
RANDOMSTRING $RANDOMFLOAT Paid with Visa ending in RANDOMINT *- For: RANDOMSTRING -*
RANDOMINTx *RANDOMSTRING* (RANDOMSTRING)
=E2=80=A2 RANDOMSTRING1
$RANDOMFLOAT
RANDOMINTx RANDOMSTRING (RANDOMSTRING)
=E2=80=A2 RANDOMSTRING2
=E2=80=A2 RANDOMSTRING3
=E2=80=A2 RANDOMSTRING4
=E2=80=A2 RANDOMSTRING5
$RANDOMFLOAT
RANDOMINTx *RANDOMSTRING* (RANDOMSTRING)
=E2=80=A2 RANDOMSTRING6
=E2=80=A2 RANDOMSTRING7
$RANDOMFLOAT
RANDOMINTx *RANDOMSTRING* (RANDOMSTRING)
=E2=80=A2 RANDOMSTRING8
=E2=80=A2 RANDOMSTRING9
您好,我想将每个 =E2=80=A2 行中的 RANDOMSTRINGs 作为数组数组获取。它们根据 =E2=80=A2 分组进行分组。
预期输出示例:
[[RANDOMSTRING1], [RANDOMSTRING2, RANDOMSTRING3, RANDOMSTRING4, RANDOMSTRING5], [RANDOMSTRING6, RANDOMSTRING7], [RANDOMSTRING8, RANDOMSTRING9]]
我用什么:
menu_item_accessories_items = re.findall("((=E2=80=A2 .*$)|\n\n)", bodytext, re.MULTILINE)
我得到的输出(touples 数组):
[(RANDOMSTRING1, RANDOMSTRING1), (RANDOMSTRING2, RANDOMSTRING2), (RANDOMSTRING3, RANDOMSTRING3), (RANDOMSTRING4, RANDOMSTRING4), (RANDOMSTRING5, RANDOMSTRING5), (RANDOMSTRING6, RANDOMSTRING6), (RANDOMSTRING7, RANDOMSTRING7), (RANDOMSTRING8, RANDOMSTRING8), (RANDOMSTRING9, RANDOMSTRING9)]
【问题讨论】:
-
RANDOMSTRING可以包含哪些字符?还是他们字面意思是“随机字符串”? -
RANDOMSTRING 是字母数字,包括最多 50 个字符的空格
-
可以适应类似:
[[el.partition(' ')[2] for el in g] for k, g in itertools.groupby(bodytext.splitlines(), lambda L: L.startswith('=E2=80=A2')) if k]的内容吗?有点难以具体说明,因为它不是最易读的示例:) -
@JonClements 非常感谢
标签: python regex string python-2.7