簡體   English   中英

正則表達式,獲取兩個關鍵字之間的整個字符串

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

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