正则表达式匹配任意两个字符,其中两个字符以除反斜杠以外的任何内容开头,然后是 space

Regex match on any two characters where the two characters start with anything but a backslash and then a space

我有一个这样的字符串样本:us-west,AAA 4589235i date=Wed\ Dec\ 12\ 02:27:22\ UTC\ 2018

我想用空格将其拆分...除了以“\”开头的空格。像这样的字符串可能有任何变体,并且空格前​​面可以有 "$&。我只是想避免使用 \s,因为这是发送时带有我想忽略的转义符的数据。

如何完全匹配 <any character except '\'>\s

我猜,也许你正在尝试做:

import re

string = '''us-west,AAA 4589235i date=Wed\\ Dec\\ 12\\ 02:27:22\\ UTC\\ 2018'''

expression = r'(?<!\\)\s'

print(re.split(expression, string))


输出

['us-west,AAA', '4589235i', 'date=Wed\\ Dec\\ 12\\ 02:27:22\\ UTC\\ 2018']

如果您希望simplify/update/explore表达式,regex101.com. You can watch the matching steps or modify them in this debugger link, if you'd be interested. The debugger demonstrates that how a RegEx engine的右上面板已经解释过可能会逐步使用一些示例输入字符串并执行匹配过程。