当前位置: 首页 > web >正文

python使用正则表达式判断字符串中“.“后面不是数字的情况

要判断字符串中"."后面的字符不是数字,可以使用正则表达式的负向零宽断言(negative lookahead)。以下是Python代码实现:

import redef is_dot_not_followed_by_digit(s):# 正则表达式解释:# \.      - 匹配点号# (?!\d)  - 负向零宽断言,表示点号后面不能是数字pattern = r'\.(?!\d)'return bool(re.search(pattern, s))# 测试用例
test_cases = [("abc.def", True),    # 点号后面不是数字("abc.123", False),   # 点号后面是数字("1.2.3", False),     # 第一个点号后面是数字,第二个点号后面不是数字("1.2.a", True),     # 点号后面不是数字("no_dot_here", False),  # 没有点号(".end", True),       # 点号在末尾,后面没有数字("1.0", False),       # 点号后面是数字("1.a", True),        # 点号后面不是数字
]for s, expected in test_cases:result = is_dot_not_followed_by_digit(s)print(f"'{s}': {'通过' if result == expected else '失败'} (预期: {expected}, 实际: {result})")

代码说明:

  1. 正则表达式 r'\.(?!\d)' 分解:

    • \. - 匹配点号字符(需要转义)
    • (?!\d) - 负向零宽断言,表示"后面不能是数字"
  2. re.search() 会在字符串中搜索匹配项,如果找到则返回匹配对象,否则返回None。

  3. bool() 将结果转换为布尔值,匹配成功返回True,否则返回False。

变体需求

如果你需要检查字符串中所有点号后面都不是数字(而不仅仅是存在至少一个点号后面不是数字),可以使用:

def all_dots_not_followed_by_digit(s):# 匹配所有点号,且每个点号后面都不是数字# 或者字符串中没有点号(此时也返回True)return bool(re.fullmatch(r'[^.]*|(\.(?!\d)[^.]*)+', s))

或者更简单的版本:

def all_dots_not_followed_by_digit(s):# 查找是否有任何点号后面是数字# 如果没有这样的点号,则返回Truereturn not re.search(r'\.\d', s)

根据你的具体需求选择合适的实现方式。

http://www.xdnf.cn/news/13477.html

相关文章:

  • 初学者运行Pycharm程序可能会出现的问题,及解决办法
  • CMO增加人工智能投资:数据表明了什么
  • 软件架构期末复习
  • 7.路由汇聚及更新
  • Docker安装mysql数据库后显示时间问题
  • 3 mnist gan小试牛刀
  • 有多少小于当前数字的数字
  • 巨好用的提示词优化工具 Prompt IDE
  • React删除评论逻辑:1、客户端立即更新UI(乐观更新)2、后台调用删除评论API
  • 【测试专栏】自动化测试——云存储项目
  • 【源码】研学报名小程序开发功能分析案例
  • 网络安全之框架安全漏洞分析
  • 【网页端数字人开发】基于babylonjs+mediapipe实现视频驱动数字人姿态生成
  • .NET 的IOC框架Unity代码示例
  • LangGraph基础知识(MemorySaver/SqliteSaver )(三)
  • Qt::QueuedConnection详解
  • 告别 NullPointerException!深入探索 Java Optional 的最佳实践
  • P1216 [IOI 1994] 数字三角形 Number Triangles
  • C++之前向声明
  • QT绘制会动的蚂蚁线
  • [灵感源于算法] 链表类问题技巧总结
  • 【大模型训练】中短序列attention 和MOE层并行方式(二)
  • 如何在多任务环境中设定清晰的项目优先级?
  • 多面体基准测试集PolyBench
  • 前端~三维地图(cesium)点位聚合
  • 从零打造前沿Web聊天组件:从设计到交互
  • TikTok在英国用户量达3000万
  • 增强自注意力机制CeAtt,增强局部细节!
  • Scrapy爬虫框架:数据采集的瑞士军刀(附实战避坑指南)!!!
  • 如何开始HarmonyOS 5与Godot引擎融合开发?