簡體   English   中英

正則表達式

[英]Regular Expression

我想通過正則表達式從以下文本中捕獲數據:

測試字符串:

(003) Recoverable salaries and allowances (General)
(700) General non-recurrent, (001) lamslkdf; (999) ajkndsfk

這是我目前的正則表達式模式

[\(|\[](?<code>[0-9]{0,3})[\)|\]]\s?(?<title>[\s\S]+)

這是我的期望,上面的正則表達式無法匹配。

  1. 003>>可收回的工資和津貼(一般)
  2. 700>>一般不復發
  3. 001 >> lamslkdf
  4. 第999章

我怎樣才能達到這個目的? 請指教。 謝謝

您可以使用

(?:\((?<code>\d{1,3})\)|\[(?<code>\d{1,3})])\s*(?<title>.*?)(?=\s*(?:\(\d{1,3}\)|\[\d{1,3}]|\z))

請參閱.NET 正則表達式演示 輸出:

在此處輸入圖片說明

細節

  • (?:\\((?<code>\\d{1,3})\\)|\\[(?<code>\\d{1,3})]) - 要么( ,然后一到三個數字捕獲到組"code", and ) , or [ , 然后將 1-3 位數字捕獲到組 "code" and ]
  • \\s* - 0+ 個空格
  • (?<title>.*?) - 組“title”
  • (?=\\s*(?:\\(\\d{1,3}\\)|\\[\\d{1,3}]|\\z)) - 緊隨其后
    • \\s* - 0+ 個空格
    • (?:\\(\\d{1,3}\\)|\\[\\d{1,3}]|\\z) - ( + 一到三位數和) ,或[ ,一到三位數, ]或字符串的結尾。

暫無
暫無

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

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