我希望使用pythonre.split()
将字符串按空格和句点拆分为单个单词,但我不希望将["1.2"]
拆分为["1", "2"]
。在
示例:
line = "AAA BBB.CCC.DDD BBB.CCC.DDD -0.03951979"
结果应该是:
^{pr2}$
我用x = re.split('\W+',line)
来分割它,但是结果不是我想要的。在
它得到了['AAA','BBB','CCC','DDD','BBB','CCC','DDD','-0','03951979','']
谢谢。在
Tags:
https://regex101.com/r/TFObY0/1
请注意,这也不会拆分123.23.24。在
如果一侧不是数字或两侧都不是数字,则仅使用
.
作为分隔符。 将所有空格字符作为分隔符。在将
\W+
替换为(?<=\d)\.(?!\d)|(?<!\d)\.(?=\d)|(?<!\d)\.(?!\d)|
,使其正常工作。在正则表达式解释
(?<=\d)\.(?!\d)|(?<!\d)\.(?=\d)|(?<!\d)\.(?!\d)|
我们在这里使用四个部分作为分隔符
1|2|3|4
因此,请分别理解每个部分。
1一个
.
,具有前导数字而不是尾随数字。1.2.b
->;1.2
,b
2没有前导数字和尾随数字的
.
。a.1.2
->;a
,1.2
三。两边都没有数字的
.
->;a
,-1
4全部
characters
1 2
->;1
,2
让我们来了解这些条件是如何产生的
Lookbehinds
^{pr2}$现在你了解了周围的环境,你就能理解比赛的每一部分。在
这个怎么样?在
它首先查找小数点(以/不带+/-开始,然后至少一位数字、一个点和至少一位数字), 第二,找一些不包含空格和点的东西。在
我得到了输出:
^{pr2}$使用lookaround:
输出:
^{pr2}$如果周围没有数字,它将在空格或点上拆分。在
根据评论编辑:
输出:
相关问题 更多 >
编程相关推荐