python - 如果前面没有数字,则按 '.' 分割

标签 python regex python-re

我要拆分'10.1这是一个句子。又一句话。'['10.1 这是一个句子', '另一个句子'] 并拆分 '10.1。这是一句话。另一句话。'['10.1.这是一句话','另一句话']

我已经尝试过

s.split(r'\D.\D')

不行,怎么解决?

最佳答案

如果您计划在 . 字符上拆分字符串,该字符前面或后面没有数字,并且不在字符串末尾,则拆分方法可能适合您:

re.split(r'(?<!\d)\.(?!\d|$)', text)

请参阅regex demo .

如果您的字符串可以包含更多特殊情况,您可以使用更可定制的提取方法:

re.findall(r'(?:\d+(?:\.\d+)*\.?|[^.])+', text)

参见this regex demo详细信息:

  • (?:\d+(?:\.\d+)*\.?|[^.])+ - 匹配一次或多次出现的非捕获组
    • \d+(?:\.\d+)*\.? - 一位或多位数字 (\d+),然后是零个或多个 序列. 和一位或多位数字 ((?:\.\d+)*),然后是可选的 . 字符 (\.?)
    • | - 或
    • [^.] - . 字符以外的任何字符。

关于python - 如果前面没有数字,则按 '.' 分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70849651/

相关文章:

python regex lookbehind删除字符串中的_sublabel1,如 "__label__label1_sublabel1"

python - 提取两个标记之间的所有子字符串

python - 如何使用 Python Regex 查找首字母大写的所有单词

python - builtins.True 语法错误

python - 如何使用scrapy的XmlFeedSpider解析sitemap.xml文件?

javascript - 使用多返回 RegEx ('g' ) + Javascript 中的开关替换字符串

java - 电话号码正则表达式

python - Matplotlib:绘制两个 x 轴,一个是线性的,一个是对数刻度

python - mpiexec 和 python mpi4py 给出等级 0 和大小 1

regex - 哪个是更好的非贪婪正则表达式或否定字符类?