2016-03-01 57 views
1

我有一個包含如何使用正則表達式從html標記中提取FirstName和LastName?

"<h3 class="panel-title">Welcome 
           First Last </h3>" 

反應的身體我要取「第一個最後」作爲輸出

正則表達式我已經試過被

"Welcome(\s*([A-Za-z]+))(\s*([A-Za-z]+))" 
"Welcome \s*([A-Za-z]+)\s*([A-Za-z]+)" 

但沒能拿到結果。如果我刪除換行符並將其作爲 "<h3 class="panel-title">Welcome First Last </h3>"它正在檢測在線正則表達式製造商。

+4

正則表達式和HTML不是好朋友。 – Maroun

+2

您的正則表達式工作原理:[組2和4包含您的數據](https://regex101.com/r/dK9sE0/1)。 –

+0

看看這個問題和答案有關跨多行匹配:http:// stackoverflow。com/questions/159118/how-do-i-match-any-character-across-multiple-lines-in-a-regular-expression – MarkNFI

回答

0

我懷疑你的問題是「歡迎」和用戶名之間的回車。如果您在正則表達式中使用「單行模式」標誌(?s),它將忽略換行符。試試這些:

(?s)Welcome(\s*([A-Za-z]+))(\s*([A-Za-z]+)) 

(?s)Welcome \s*([A-Za-z]+)\s*([A-Za-z]+) 

(這部作品在JMeter的任何其他Java或基於PHP的正則表達式,但不是在JavaScript中你說你正在使用的JavaScript,也JMeter的關於這一問題的意見 - 如果它是一個。 jMeter的問題,那麼這將有所幫助。如果是javaScript,請嘗試其他答案)

+0

嘿......謝謝!爲我工作......你的猜測是對的。我正在努力與換行。 – Shivalika

+0

謝謝Shivalika。如果您將我的答案標記爲「正確」 –

-1

正則表達式是由默認的貪婪,試試這個

Welcome\s*([A-Za-z]+)\s*([A-Za-z]+) 

1和2組包含數據

檢查它here

+1

*正則表達式默認爲貪婪*完全不正確。另外,OP正則表達式的作品。沒有必要重寫OP的正則表達式。 OP需要知道如何在jmeter中使用該正則表達式。 –

+0

我嘗試過使用http://scriptular.com/不工作! – Shivalika

+0

您能否詳細說明OP的含義? – Shivalika

0

嗯,我通常不建議對正則表達式這種工作的。 DOM操作發揮最大作用。

但你可以用下面的正則表達式來抽出文字:

/(?:<h3.*?>)([^<]+)(?:<\/h3>)/i 

見演示在https://regex101.com/r/wA2sZ9/1

這將提取名和姓,包括額外的間距。我相信你可以輕鬆處理空間。

0

在JMeter的REG EXP提取你可以使用:

<h3 class="panel-title">Welcome(.*?)</h3> 

使用$ 1 $然後取值。

在您顯示的數據中,歡迎信息後面跟着enter。如果實際上它是響應的一部分,那麼您必須使用\ n。

<h3 class="panel-title">Welcome\n(.*?)</h3> 

否則上面的一個就足夠了。

首先在jmeter中使用響應體的正則表達式測試程序驗證這一點。

0

歡迎([\ S \ S] +?)<

試試這個,它肯定會工作。

+0

的人的性別中性版本您可以看到演示:-https://regex101.com/r/oM1rV2/1 – vikas

相關問題