簡體   English   中英

正則表達式匹配但從捕獲組中排除字符

[英]Regex match but exclude character from capture group

我有以下正則表達式:-

^(?:\[ [^\]]+ \]) ([\-\£]{1,2}[0-9]+\.[0-9][0-9]?)?

以及以下文字:-

John Doe
+++++++++++++++++++++++++++++++++++++++++++
Blah blah
+++++++++++++++++++++++++++++++++++++++++++
[ √ ] £3.00 Red
[ √ ] £2.00 Blue
[ √ ] £55.55 Yellow
[ √ ] -£41.75 PAYMENT
[ √ ] £5.00 Green
[ √R ] £10.00 Pink
+++++++++++++++++++++++++++++++++++++++++++
Belugh
+++++++++++++++++++++++++++++++++++++++++++
Blah blah
Blah

正則表達式工作正常並匹配:-

£3.00
£2.00
£55.55
-£41.75
£5.00
£10.00

我想要做的是讓正則表達式匹配 '£' 但不在捕獲組中返回它。

所以結果是這樣的:-

3.00
2.00
55.55
-41.75
5.00
10.00

重要的一點是應該保留的“-”字符,但出現在“£”字符之前。

這里有一個小提琴

你能做的最好的是:

^(?:\[ [^\]]+ \]) (-?)[\£]([0-9]+\.[0-9][0-9]?)?

然后從匹配中提取第 1 組和第 2 組,並將它們附加到您正在使用的語言/環境中。

演示

我通過在捕獲組中包含“£”然后簡單地用我正在使用的語言的匹配結果中的“無”替換該符號來做到這一點。

暫無
暫無

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

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