[英]Regex, get entire string between two keywords
我正在做一些輸出解析,我需要從兩個單詞之間獲取一大塊文本。 例如,如果我正在解析文本
"Hi this is an example"
我希望能夠指定我的兩個單詞為“ Hi”和“ example”,然后我將取回字符串
" this is an "
我知道正則表達式很有用,但我對它們不熟悉。 有任何想法嗎?
您將需要一個看起來像的正則表達式
Hi(.*?)example
我們想要捕獲()
的所有內容
.
匹配任何字符
*
表示我們想要從0到無窮大.
我們加一個?
最后,以便我們進行非貪婪的匹配,否則它將吞噬所有內容,直到您文本中的最后一個“示例”,而不是“ Hi”之后的第一個“示例”。
編輯: 就正則表達式測試人員而言,我喜歡Rubular 。 它在技術上是特定於紅寶石的,但對簡單的東西也很好用。 它顯示整個正則表達式匹配項和捕獲組。 這是您的示例: http : //rubular.com/r/c9I4cmJqBx
此正則表達式將匹配兩個單詞之間的所有內容:
(?<=Hi).*(?=example)
此正則表達式使用“環顧四周”,從而消除了捕獲組然后提取組的需要- 整個匹配是您的目標。
您不需要此任務的正則表達式。 找到兩個單詞的索引,然后返回兩個索引之間的值。 您必須將第一個單詞的長度添加到第一個索引中。
var search = 'this is a quick test', first = 'this', second = 'test';
search.substring( search.indexOf(first) + first.length, search.indexOf(second));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.