拿这个正则表达式: /^[^abc]/
。 这将匹配字符串开头的任何单个字符,a,b或c除外。 正则表达式
若是添加*
以后- /^[^abc]*/
-正则表达式将会继续后面的每一个字符添加到结果,直到遇到的任何a
, 或者 b
或 c
。 测试
例如,使用源字符串"qwerty qwerty whatever abc hello"
,表达式将匹配"qwerty qwerty wh"
。 this
可是,若是我但愿匹配的字符串是"qwerty qwerty whatever "
what”怎么办? spa
...换句话说,我如何匹配(但不包括) 确切序列 "abc"
? .net
正如@Jared Ng和@Issun指出的那样,解决这种RegEx的关键是“匹配某个单词或子串的全部内容”或“匹配某个单词或子串后的全部内容”称为“环视”零长度断言。 在这里阅读更多相关信息。 code
在您的特定状况下,能够经过积极展望来解决。 一张图片赛过千言万语。 请参阅屏幕截图中的详细说明。 图片
试试这个 字符串
.+?efg
查询: get
select REGEXP_REPLACE ('abcdefghijklmn','.+?efg', '') FROM dual;
输出: io
hijklmn
对于Java中的正则表达式,我也相信大多数正则表达式引擎,若是你想包含最后一部分,这将有效:
.+?(abc)
例如,在这一行:
I have this very nice senabctence
选择全部字符,直到“abc”,并包括abc
使用咱们的正则表达式,结果将是: I have this very nice senabc
测试一下: https : //regex101.com/r/mX51ru/1
这对正则表达式有意义。
(“(。*?)“)/G
在这里,咱们能够得到属于双引号内的全局字。 例如,若是咱们的搜索文本是,
这是“双引号”单词的示例
那么咱们将从那句话中获得“双引号”。
我在寻找帮助解决个人问题后找到了这个stackoverflow问题,但没有找到它的解决方案:(
因此我不得不即兴发挥......过了一段时间我设法达到我须要的正则表达式:
如您所见,我须要在“grp-bps”文件夹以前最多一个文件夹,而不包括最后一个短划线。 而且须要在“grp-bps”文件夹后至少有一个文件夹。
编辑
复制粘贴的文本版本(更改文本的'grp-bps'):
* / GRP-BPS / [^ /] +