2017-08-30 68 views
1

我正在使用名爲Firemon的應用程序,它使用正則表達式將文本從各個字段中提取出來。我不確定它使用哪種特定版本的正則表達式,我在文檔中找不到對此的引用。如何使用正則表達式在特定前綴之後返回文本?

我的原始文本,總是會在以下格式:

CM: 12345 
APP: App Name 
BZU: Dept Name 
REQ: First Last 
JST: Text text text text. 

CM將永遠是一個整數,JST將句子可以跨多行,以及其他領域將是包括1串-2個字 - 每個部分後總是有回報。

Firemon的應用程序讓我爲每個字段創建一個正則表達式條目。一些簡單的查找每個前綴,然後返回應該工作,因爲我返回每個值。我已經嘗試了幾種變體,比如「BZU:\ s *(。*)」,但似乎無法找到有效的東西。

編輯:要清楚我試圖獲得每個前綴後的值。 Firemon爲每個領域都有一個部分。例如「APP」是一個字段。我需要一個正則表達式的例子來找到「APP:」,然後返回文本。因此,像正則表達式那樣簡單的標識「APP:」的東西,並且在返回之後和返回之前抓取所有東西可能會起作用。

+0

如果它與perl兼容,則應該使用'[\ s] *'而不是'\ s *'。 '\ s'引用一個字符類,因此它必須用在括號內=>'BZU:[\ s] *(。*)' – Psi

+0

我不明白,但如果你想匹配什麼後判斷你可以使用'(?= \ w +)(。*)' – squareCircle

+0

對不起,應該已經更清楚了。在上面的示例文本中,我想要每個前綴之後的值,例如「App Name」和「First Last」。 – fdefunct

回答

1

您可以使用(?=\w+)(.*)

正向前查找將從比賽組中刪除前綴和空格字符,你會在每場比賽後的空間獲取文本。

+1

你試過這個並且工作嗎? – jdmdevdotnet

+0

你可以[檢查](http://regexr.com/3glsk) – squareCircle

+0

我問的理由是因爲如果你做了那麼你應該張貼你的證據,你在你的評論中。我會編輯答案並將該鏈接放在那裏作爲證據。自從你(似乎是)有正確的答案xD以後,我也會加倍努力。 – jdmdevdotnet

相關問題