[英]REGEX drop leading and trailing spaces within ( )
我有一個字符串,我試圖從中提取數據
(CAM SYSTEM: CIMATRON E13 )
我有以下 REGEX 似乎讓我很接近,但我不想要前導空格或尾隨空格。
(?<=\()(CAM SYSTEM:)([^)]+)(?=\))
我嘗試了幾件事(?<=\()(CAM SYSTEM:)([^\s)]+)(?=\))
和(?<=\()(CAM SYSTEM:)([^\s*)]+)(?=\))
沒有運氣
我期待有2組。 CAM SYSTEM:
和CIMATRON E13
,當前的 REGEX 給了我CIMATRON E13
以下是我將如何修改您的正則表達式以解決此問題:
\((CAM SYSTEM:) *(.+?) *\)
\(
匹配文字(
字符,但它在任何捕獲組之外,因此它僅包含在完整匹配中。(CAM SYSTEM:)
匹配文字字符串CAM SYSTEM
並將其放在第一個捕獲組中,因為它在括號內。*
匹配可能存在的任意數量的空格,但它也在任何捕獲組之外,因此您無需擔心這會影響您的結果。(.+?)
創建第二個捕獲組,它匹配一個或多個任意字符,但它是惰性匹配,這意味着它匹配盡可能少的字符,同時仍然使匹配工作。*\)
匹配后跟文字)
字符的任意數量的空格,這會強制第二個捕獲組匹配最后一個括號,不包括尾隨空格。該解決方案適用於您給定的測試用例,並且不使用任何環顧四周,在我看來,這使它更清潔、更快。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.