我試圖讓REGEX在First name:
,Last name:
,Email:
之後提取文本並且不包含標籤。匹配後匹配行開頭返回文本
這是我在標籤之間的文字。
<MyText>
First name: Chris
Last name: Jones
Email: [email protected]
</myText>
我一直在玩這樣的事情:/(Last name:).*?
但這並不行。有誰知道如何解決這個問題?
我試圖讓REGEX在First name:
,Last name:
,Email:
之後提取文本並且不包含標籤。匹配後匹配行開頭返回文本
這是我在標籤之間的文字。
<MyText>
First name: Chris
Last name: Jones
Email: [email protected]
</myText>
我一直在玩這樣的事情:/(Last name:).*?
但這並不行。有誰知道如何解決這個問題?
使用.NET正則表達式,你可以使用正向後斷言:
new Regex(@"(?<=Last name:).*");
根據上下文,你可能要但請小心 - JavaScript正則表達式引擎不支持lookbehind斷言,因此您不能在ASP.NET RegularExpressionValidator中使用此客戶端。
啊這是一個! 「(?<=姓氏:)。*」我不需要?在最後# – 2013-03-13 15:35:45
謝謝你這個工作的冠軍! – 2013-03-13 15:55:03
試試這個正則表達式:
/^.*?: (.*)$/
對不起Champ,我想每個標籤總共有三個正則表達式,第一個和最後一個電子郵件。返回後的文本: – 2013-03-13 15:33:44
我真的不知道你的腳本語言(正則表達式的支持可以區別)。但是,這樣的事情應該工作:
/^.*?:(.*?)$/m
一些交代:
與m
修飾符(//m
)一個正則表達式表示^
和$
比賽的開始和結束每行,而不是開始和一個結束串。
該.*?:
部分匹配Last name:
,First name:
,等。並且因爲它不在括號(()
)之間,所以不會捕獲它。
(.*?)
部分匹配冒號後的所有內容(:
),並且由於$
放在它之後,它將匹配所有內容,直到行尾。它位於括號之間,意味着它將被捕獲。
爲了回答您的編輯,使用此:
/^First name: (.*?)$/m
/^Last name: (.*?)$/m
/^Email: (.*?)$/m
這不起作用。我希望每個標籤總共有三個正則表達式 – 2013-03-13 15:31:55
@ChrisJones編輯了正則表達式來做到這一點 – 2013-03-13 15:35:54
再次感謝您的詳細回覆。 – 2013-03-13 15:55:20
正在使用哪種正則表達式的方言? – MattW 2013-03-13 15:30:05
感謝編輯Wouter! – 2013-03-13 15:30:25
@mattw我正在使用C# – 2013-03-13 15:30:48