拿這個正則表達式: /^[^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 / [^ /] +