嘟嘟社区

正则怎么写只匹配唯一一个字符串?


只能出现一个字符出两个都不匹配,例如匹配b:abc (能匹配)abcb(不能匹配)
这正则咋写?
本帖最后由 caizi 于 2022-6-16 14:46 编辑

看错。但你这个需求,还是写一小段程序判断吧。

caizi 发表于 2022-6-16 14:39
看错。但你这个需求,还是写一小段程序判断吧。

写不了程序

具体情况具体分析
php很简单

先匹配出内容,再用一个循环用stripos()去寻找字符,

正则匹配的结果都是以组为单位的
我写了一下,简单测试没问题,你自己验证下
  1. ^([^b]+)?b([^b]+)?$

复制代码

https://tool.oschina.net/regex/

比如要匹配只出现一次abc的句子
  1. ^(?:(?!abc).)*abc(?!.*abc).*$

复制代码

asdfdafdabcsadsd 能匹配到
sadsfabcdasdabcd 不满足匹配

只能逐字逐词逐组匹配,一条正则解决不了