我使用的是正向预视,不能用\s* 清除字符串前面的2个空格,因为在后向预视中的量词使其宽度不固定。
我可以很容易地做到这一点与删除功能在。Net,但我只是想清除它与rgx。
字符串为:
Propocet na CZK Kurz 1.00000 Per CZK.
正则表达式为:
(?<=[Kurz]\s)\s*\d*.\d*(?=\s*Per\s[EeCc][UuZz][RrKk])
链接:https://regex101.com/r/GaZKGB/1
在那里你可以看到数字1.00000前面的空格,有时只有一个,有时多一点或少一点,我想清除它:)
谢谢你!
1条答案
按热度按时间5vf7fwbs1#
您可以使用
请参阅regex demo。
注意事项:
[Kurz]
与r
、z
、u
或K
匹配,而不是将Kurz
作为字符序列\K
是一个匹配重置运算符,它从整个匹配内存缓冲区中丢弃目前为止匹配的文本.
匹配任何字符,而要匹配文字.
,则需要对其进行转义。Kurz
-一个单词\s*
-零个或多个空格\K
-匹配重置运算符\d+
-一个或多个数字(?:\.\d+)?
-.
和一个或多个数字的可选序列(?=\s*Per\s[EeCc][UuZz][RrKk])
-匹配后面紧跟零个或多个空格的位置的正前瞻,Per
,空格,然后E
或C
,然后U
或Z
,然后R
或K
,不区分大小写。