[英]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.