我正在尝试使用 2 个分隔符和正则表达式分割字符串。我的字符串例如
“测试 10 20 中间 30 - 40 毫米”。
我想分成[“test 10”,“20 middle 30”,“40 mm”]。因此,将“-”和两个数字之间的空格分开。 我尝试做
result = re.split(r'[\d+] [\d+]', s)
> ['test 1', '0 middle 30 - 40 mm']
result2 = re.split(r' - |{\d+} {\d+}', s)
> ['test 10 20 middle 30', '40 mm']
是否有任何正则表达式可以分割 ['test 10', '20 middle 30', '40 mm'] ?
最佳答案
您可以使用
(?<=\d)\s+(?:-\s+)?(?=\d)
请参阅regex demo .
详细信息
-
(?<=\d)
- 数字必须立即出现在左侧 -
\s+
- 1 个以上空格 -
(?:-\s+)?
--
的可选序列后跟 1 个以上空格 -
(?=\d)
- 数字必须立即出现在右侧。
请参阅Python demo :
import re
text = "test 10 20 middle 30 - 40 mm"
print( re.split(r'(?<=\d)\s+(?:-\s+)?(?=\d)', text) )
# => ['test 10', '20 middle 30', '40 mm']
关于regex - 尝试使用特定的正则表达式拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61119392/