簡體   English   中英

正則表達式提取數字模式和冒號或換行符之間的字符串

[英]Regex to extract string between digit pattern and colon or newline

我必須在數字模式和冒號或換行符之間提取字符串(第一次出現)

我的字符串看起來像:

05-30-1306-29-13 建築商風險:
限額/免賠額:

我想提取 BUILDERS RISK。 可能有也可能沒有冒號,在這種情況下,我們將換行視為終止模式

這是我到目前為止想出的

\d{2}-\d{2}-\d{4}-\d{2}-\d{2}\s*\W+[^:|\n]+:\s*

數字模式將始終是 2-2-4-2 后跟任何字符串,后跟 \n 或:

到目前為止,正則表達式得到了我需要的東西,但我不知道如何將它分成不同的匹配,所以我可以參加第二場比賽

第一場比賽 - 數字模式

第二場比賽 - 我需要什么

第三場比賽 - 冒號或換行符

任何指針都會有所幫助。

更新:要搜索的文本術語的幾個替代項可能是這個

11-06-1212-29-12 住宅火災 (DP-3):年租金

11-05-1212-26-12 房主 (HO-3):第二居所

我只想要冒號之前的任何內容,或者如果不存在,則取字符串直到找到換行符。 作為旁注,重要的文本可能不會出現在同一行中,而是出現在下一行,但在同一行中總是跟在冒號或換行符之后。

PS:提取的文本不應包含冒號

看來您可以使用

\b(\d{2}-\d{2}-\d{4}-\d{2}-\d{2})\W+(.*?)(:?\r?\n\s*)

請參閱產生的正則表達式演示

在此處輸入圖像描述

細節

  • \b - 單詞邊界(如果數字可以粘貼到字母或下划線,則更改為(?<!\d)
  • (\d{2}-\d{2}-\d{4}-\d{2}-\d{2}) - 組 1:兩位, - ,兩位, - ,四位, - ,兩位數, - ,兩位數
  • \W+ - 1+ 個非單詞字符(為了保持在線,替換為[^\w\r\n]+
  • (.*?) - 第 2 組:除換行符以外的任何零個或多個字符,盡可能少
  • (:?\r?\n\s*) - 第 3 組:一個可選的: ,一個可選的 CR,一個 LF 符號,然后是任何 0+ 個空白字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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