regex 正则表达式-正先行-空间

3b6akqbq  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(113)

我使用的是正向预视,不能用\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前面的空格,有时只有一个,有时多一点或少一点,我想清除它:)
谢谢你!

5vf7fwbs

5vf7fwbs1#

您可以使用

Kurz\s*\K\d+(?:\.\d+)?(?=\s*Per\s[EeCc][UuZz][RrKk])

请参阅regex demo
注意事项:

  • [Kurz]rzuK匹配,而不是将Kurz作为字符序列
  • \K是一个匹配重置运算符,它从整个匹配内存缓冲区中丢弃目前为止匹配的文本
  • 未转义的.匹配任何字符,而要匹配文字.,则需要对其进行转义。
  • 详细数据 *:
  • Kurz-一个单词
  • \s*-零个或多个空格
  • \K-匹配重置运算符
  • \d+-一个或多个数字
  • (?:\.\d+)?-.和一个或多个数字的可选序列
  • (?=\s*Per\s[EeCc][UuZz][RrKk])-匹配后面紧跟零个或多个空格的位置的正前瞻,Per,空格,然后EC,然后UZ,然后RK,不区分大小写。

相关问题