regex某个字符可以存在也可以不存在,但之后什么都没有

regex certain character can exist or not but nothing after that

本文关键字:之后 什么 不存在 也可以 字符 存在 regex      更新时间:2023-11-10

我是regex的新手,我正在尝试搜索几个字符串。

我想检查字符串中是否存在某个字符,在本例中为":"(不带引号)。

如果:不存在于字符串中,它仍然会匹配,但如果:exist之后应该没有任何内容,只允许使用空格和新行。

我有这个模式,但它似乎不能像我想要的那样工作。

(.*)(:?'s*'n*)

谢谢。

如果我正确理解你的问题,^[^:]*(:'s*)?$

让我们把它分解一下:

^启动锚;如果没有这一点,匹配可以在每次看到另一个冒号或冒号后面的非空格时重新启动。

[^:]*匹配任意数量的非冒号字符;这样,如果整个字符串都是非冒号字符,则该字符串将被视为有效匹配。

(:'s*)?如果在任何时候确实看到冒号,则以下所有字符必须为空白,直到字符串结束;分组parens和后面的CCD_ 5的作用是使其成为要么全有要么全无的条件语句。

$端锚;如果没有这一点,regex就不会知道,如果它看到冒号,那么下面的空白必须持续到字符串的末尾。

这里有一个模式应该可以使用

/^([^:]*|([^:]*:'s*))$/

您可以使用管道来管理替代

另一种方法是:

^[^:]*(|:['n]*)$

^[^:]*=>除之外的任何内容开始

(|:[''n]*)$=>结束或者完全没有或者":"后跟换行符