首页 > 解决方案 > 如何在此正则表达式中仅排除数字?

问题描述

我正在尝试匹配看起来像这样的单词

:test:
:soda_stream:
:test3:

等等。我现在拥有的是\:\S+\:它适用于所有内容,除了我在文本中也有部分只有数字,比如:23:. 这些我想排除,但没有成功。我看了一下这个StackOverflow 页面,但它不起作用。

有谁知道该怎么做?:如果's中只有数字,则可能只是一些添加排除。

标签: python-3.xregex

解决方案


考虑到当前示例,您可以使用

:(?!\d+:)[^\s:]+:

查看正则表达式演示

细节

  • :- 一个冒号
  • (?!\d+:)- 如果有一位或多位数字,则匹配失败,然后:立即到当前位置的右侧
  • [^\s:]+- 除空格和冒号之外的 1 个或多个字符
  • :- 一个冒号

推荐阅读