如何在此正则表达式中仅排除数字?



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

:test:
:soda_stream:
:test3:

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

有谁知道该怎么做?它可能只是一些加法,如果:内只有数字,则排除在外。

考虑到当前的例子,你可以使用

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

查看正则表达式演示

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

作为替代方法,您可以在冒号之间至少匹配一个不是数字或空格字符的字符:

:[^:s]*[^:sd][^:s]*:
  • :匹配字面意思
  • [^:s]*匹配 0+ 乘以除 : 或空格字符以外的任何字符
  • [^:sd]匹配除 : 或空格字符或数字以外的任何字符
  • [^:s]*匹配 0+ 乘以除 : 或空格字符以外的任何字符
  • :字面意思匹配

正则表达式演示

最新更新