到目前爲止,我有這個正則表達式匹配所有內容直到找到2個大寫字符?
(?:(?![A-Z]{2,}).)*
它匹配的一切,直到的HTTPHeader,但是我希望它停止時,看到的HTTPHeader
如何做到這一點?
所以,如果我有串狀Http is an HttpHeader
應該匹配Http is an
到目前爲止,我有這個正則表達式匹配所有內容直到找到2個大寫字符?
(?:(?![A-Z]{2,}).)*
它匹配的一切,直到的HTTPHeader,但是我希望它停止時,看到的HTTPHeader
如何做到這一點?
所以,如果我有串狀Http is an HttpHeader
應該匹配Http is an
也許你可以使用這樣的:如果一個詞有兩種
^(?:(?!(?:\S*[A-Z]){2}).)+
(?:\S*[A-Z]){2}
將只匹配大寫字符。
而且由於這是一個負向前瞻,只有在發現有兩個大寫字母的單詞時,匹配纔會停止。
如果您在那裏使用'[^ \ sA-Z] *'而不是'\ S *',它可能實際上會更快一些。 – Jerry
YESS的作品,非常感謝和mudkips – user3117904
@ user3117904 Mudkip,泥!!! ^^ – Jerry
使用傑裏的建議,這種模式是更有效
^.*(?=\b(?:[^\sA-Z]*[A-Z]){2})
Demo
(.*?(?=[A-Z]\S*[A-Z]))
我們爲什麼要讓人很難? Live demo
這是否意味着當您看到相同的兩個大寫字符時您想要匹配?這是否意味着'HttpHeader'中的匹配應該是'HttpH'? – Jerry
它應該看到HttpHeader並停止,編輯 – user3117904
所以,如果字符串是:'Http是一個很好的頭',它應該匹配'Http是一個很好'?如果你有'Http是一個不錯的選擇',它應該匹配'Http是一個好的'嗎? – Jerry