Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
我需要像这样拆分一个字符串:
用“ b”元素表示,但不包括括号中的部分。这不是html或xml,所以我没有尝试任何模块。
“ aaa”表示任意文本。
结果应如下所示:
仍然无法弄清楚正则表达式。
我知道,“向后看”构造
我不得不尝试
想不到别的了。请帮忙。
UPD:我解析了很长的一行(包括EOL),因此不能在行的开头或结尾匹配“ b”似乎不是问题(无论如何都不存在“ b”)。向re.compile()添加re.S(点缀)标志应该可以解决问题。
https://regex101.com/r/gQ3kS4/14
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
我需要像这样拆分一个字符串:
aaaa b aaaa {aaa b aaa} aaa b aaa
用“ b”元素表示,但不包括括号中的部分。这不是html或xml,所以我没有尝试任何模块。
“ aaa”表示任意文本。
结果应如下所示:
['aaa', 'b', 'aaaa {aaa b aaa} aaa', 'b', 'aaa']
仍然无法弄清楚正则表达式。
我知道,“向后看”构造
(?<!...)
不起作用,因为括号中的文本长度可能不同。我不得不尝试
[^{]*?(b)[^}]*?
公式,但是它仍然捕获大括号中的“ b”。想不到别的了。请帮忙。
UPD:我解析了很长的一行(包括EOL),因此不能在行的开头或结尾匹配“ b”似乎不是问题(无论如何都不存在“ b”)。向re.compile()添加re.S(点缀)标志应该可以解决问题。
最佳答案
使用re.split
(?<!})\s(?!{|[^{]*})(?=b)|(?<=b)\s(?!{|[^{]*})
https://regex101.com/r/gQ3kS4/14
关于python - 拆分文本,大括号中省略元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27634388/
10-11 06:47