我正在尝试匹配看起来像这样的单词
:test:
:soda_stream:
:test3:
等等。我现在拥有的是:S+:
,它适用于所有内容,除了我在文本中也有只有数字的部分,例如:23:
.这些我想排除,但没有成功。我看了一下这个StackOverflow页面,但它不起作用。
有谁知道该怎么做?它可能只是一些加法,如果:
内只有数字,则排除在外。
考虑到当前的例子,你可以使用
:(?!d+:)[^s:]+:
查看正则表达式演示
详
:
- 冒号(?!d+:)
- 负前瞻,如果存在一个或多个数字,则匹配失败,然后立即:
到当前位置的右侧[^s:]+
- 除空格和冒号以外的 1 个或多个字符:
- 冒号
作为替代方法,您可以在冒号之间至少匹配一个不是数字或空格字符的字符:
:[^:s]*[^:sd][^:s]*:
:
匹配字面意思[^:s]*
匹配 0+ 乘以除 : 或空格字符以外的任何字符[^:sd]
匹配除 : 或空格字符或数字以外的任何字符[^:s]*
匹配 0+ 乘以除 : 或空格字符以外的任何字符:
字面意思匹配
正则表达式演示