【发布时间】:2017-03-23 11:24:48
【问题描述】:
我正在尝试为我制作的应用程序解析一些字符串。
我只想在逗号后面跟一个星号(不包括特定单词的第一次出现)时才用逗号分隔,比如说“条件”。所以,例如字符串:!Example,Value,1,*SPLIT_THIS=True,*AND_THIS=True,*CONDITION=Something/ELSE:!Example,Value,2,*DONT_SPLIT=True,*AND_NOT_THIS=True,*CONDITION=SomethingElse/ELSE:False
应该像这样拆分:
["!Example,Value,1",
"*SPLIT_THIS=True",
"*AND_THIS=True", "*CONDITION=Something/ELSE:!Example,Value,2,*DONT_SPLIT=True,*AND_NOT_THIS=True,*CONDITION=SomethingElse/ELSE:False"]
因此,那里可能有更多的“CONDITION”和更多的逗号星号,但我只想拆分直到第一次出现“CONDITION”。我尝试过像(?=(CONDITION)) 或(?=CONDITION) 和',\*' 这样的积极前瞻,以逗号分隔,后跟星号(不包括星号),但我似乎找不到合适的。任何指针都会非常有帮助。
【问题讨论】:
-
你需要分几个步骤来完成,我不认为单个正则表达式可以用来实现这一点。
-
检查ideone.com/rLvOsP,让您知道它是否适合您。
-
几乎成功了!字符串的最后一部分(第二个 CONDITION 部分)应该以星号开头,但在本例中没有。谢谢你的快速回复,我很固执地认为我可以用一个表情让它工作,但显然这是不可能的。初始拆分就可以了。
-
糟糕。我在这里看到一个较旧的链接。我分叉并修改了我的建议。恢复后我会发布。
标签: regex python-2.7