我需要找出一个正则表达式来测试4个字符串,以查看它们是否不存在于我的输入值中。
例如,我希望捕获其中不完全匹配/aaa
,bbb
,/ccc
或/ddd
的所有输入。
因此有效的字符串应为/dd
,/dddd
,依此类推
无效的字符串将是/aaa
,/bbb
,/ccc
,/ddd
。
我正在使用以下正则表达式:
^((?!\/aaa)(?!\/bbb).)*$
该方法适用于上述任何2个字符串,但是如果我添加4个此类捕获组,则它将不起作用。
答案 0 :(得分:2)
您可以使用具有字符类并对该组的反向引用的捕获组:
^(?!/([a-d])\1{2}$).*$
说明
^
字符串的开头(?!
负向查找,断言直接在右边的不是
/([a-d])\1{2}$
匹配/
,捕获字符类中列出的任何一个,并重复两次对该组的反向引用,并断言字符串的结尾)
近距离否定预测.*
匹配任何char 0次以上$
声明字符串的结尾如果您不想匹配空字符串,则可以使用+
而不是*
作为量词。
答案 1 :(得分:1)
您可以使用位置标记is_same_v
来确保下一个位置是单词的边界,并在ggplot(aes(x=grp3, y=value1, label=id, label2=value2, label3=grp))
组中使用OR运算符\b
来包含多个单词忽略:
|
假设这是用于某些命令行界面的,甚至可以通过将/移到组之外来忽略不是命令的行。
not
您可以在这里看到实际的效果,以及它会捕获和不捕获的内容:
How to choose variable to display in tooltip when using ggplotly?