簡體   English   中英

正則表達式-直到第一次出現字符串

[英]Regex - Until the first occurrence of a string

我曾嘗試創建所需的正則表達式,但即使半小時后,我仍然沒有成功。

正則表達式應如下所示: hey字符串后跟ANY字符(也包括新行),以</div>字符串的第一次出現作為結尾。

我嘗試這樣做,但是當我在hey字符串之后允許任何內容時,它變得過於貪婪,並返回一個包含hey及其之后內容的匹配項,而不是給我多個以</div>結尾的匹配項。

謝謝您的幫助。

這行得通嗎? 試試看。

。*? 表示不貪心任何長度的字符

hey.*?'

craig1231是正確的? *使正則表達式為非貪婪。 我不確定您的意思是:

字符串的第一次出現

如果應該使用2個雙引號,請嘗試在C#中執行以下操作:

try {
    if (Regex.IsMatch(subjectString, "hey.*?\"\"", RegexOptions.Singleline)) {
        // Successful match
    } else {
        // Match attempt failed
    } 
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}

RegexOptions.Singleline是必需的,因為您還希望捕獲換行符等。

我終於設法創建了所需的正則表達式:

嘿嘿((\\ S)|()。)*?

我的態度有點不對,因為如果我想找到某些東西的第一次出現,我應該簡單地寫它,但是我要感謝craig1231,讓我知道如何懶惰地做它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM