如何在正則表達式中匹配「直到這個字符序列」的任何內容?

拿這個正則表達式: /^[^abc]/ 。 這將匹配字符串開頭的任何單個字符,a,b或c除外。 正則表達式

若是添加*以後- /^[^abc]*/ -正則表達式將會繼續後面的每一個字符添加到結果,直到遇到的任何a或者 b c測試

例如,使用源字符串"qwerty qwerty whatever abc hello" ,表達式將匹配"qwerty qwerty wh"this

可是,若是我但願匹配的字符串是"qwerty qwerty whatever " what」怎麼辦? spa

...換句話說,我如何匹配(但不包括) 確切序列 "abc".net


#1樓

正如@Jared Ng和@Issun指出的那樣,解決這種RegEx的關鍵是「匹配某個單詞或子串的全部內容」或「匹配某個單詞或子串後的全部內容」稱爲「環視」零長度斷言。 在這裏閱讀更多相關信息。 code

在您的特定狀況下,能夠經過積極展望來解決。 一張圖片賽過千言萬語。 請參閱屏幕截圖中的詳細說明。 圖片

Regex101截圖


#2樓

試試這個 字符串

.+?efg

查詢: get

select REGEXP_REPLACE ('abcdefghijklmn','.+?efg', '') FROM dual;

輸出: io

hijklmn

#3樓

對於Java中的正則表達式,我也相信大多數正則表達式引擎,若是你想包含最後一部分,這將有效:

.+?(abc)

例如,在這一行:

I have this very nice senabctence

選擇全部字符,直到「abc」,幷包括abc

使用咱們的正則表達式,結果將是: I have this very nice senabc

測試一下: https//regex101.com/r/mX51ru/1


#4樓

這對正則表達式有意義。

  1. 確切的單詞能夠從如下regex命令得到:

(「(。*?)「)/G

在這裏,咱們能夠得到屬於雙引號內的全局字。 例如,若是咱們的搜索文本是,

這是「雙引號」單詞的示例

那麼咱們將從那句話中獲得「雙引號」。


#5樓

我在尋找幫助解決個人問題後找到了這個stackoverflow問題,但沒有找到它的解決方案:(

因此我不得不即興發揮......過了一段時間我設法達到我須要的正則表達式:

在此輸入圖像描述

如您所見,我須要在「grp-bps」文件夾以前最多一個​​文件夾,而不包括最後一個短劃線。 而且須要在「grp-bps」文件夾後至少有一個文件夾。

編輯

複製粘貼的文本版本(更改文本的'grp-bps'):

* / GRP-BPS / [^ /] +

相關文章
相關標籤/搜索