[英]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]+)
這是我的期望,上面的正則表達式無法匹配。
我怎樣才能達到這個目的? 請指教。 謝謝
您可以使用
(?:\((?<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.