gpt4 book ai didi

c# - 使用以点开头的正则表达式匹配字符串不包括 double

转载 作者:行者123 更新时间:2023-12-04 10:22:18 25 4
gpt4 key购买 nike

我正在寻找一个正则表达式来拆分以下字符串:
.name "Collector Show Stress" .target "target" .curio_result_type "negative" .chance 80% .stress 10.0 .on_hit true .on_miss false.queue true
进入:
.name "Collector Show Stress"
.target "target"
.curio_result_type "negative"
.chance 80%
.stress 10.0
.on_hit true
.on_miss false
.queue true

我使用以下正则表达式进行匹配,但它也将双倍拆分:
\.[^.]+

我得到的结果是:
.name "Collector Show Stress"
.target "target"
.curio_result_type "negative"
.chance 80%
.stress 10
.0
.on_hit true
.on_miss false
.queue true

当涉及到正则表达式时,我基本上是一个新手,因此我们不胜感激。

我在 C# 控制台应用程序中使用正则表达式。

提前致谢!

最佳答案

要匹配您的示例数据,您可以匹配第二部分的可用选项:

\.[^.\s]+ (?:"[^"]+"|true|false|[0-9]+(?:\.[0-9]+)?%?)

说明
  • .[^.\s]+ 比赛 。和 1+ 次出现除点或空格字符以外的任何字符
  • (?:非捕获组
  • "[^"]+"从开头到结尾的双引号匹配 "..."
  • |
  • true字面匹配
  • |
  • false字面匹配
  • |
  • [0-9]+(?:\.[0-9]+)?将 1+ 位数字与可选的小数部分匹配
  • %?匹配可选的百分号
  • )关闭群

  • Regex demo

    较不严格的模式可能是不匹配一个点,或者匹配一个点后跟一个数字
    \.[^.]+ (?:[^.\s]|\.(?=[0-9]))+

    说明
  • .[^.]+ 匹配一个点,后跟 1+ 次除点之外的任何字符
  • (?:非捕获组
  • [^.\s]匹配除点或空白字符以外的任何字符
  • |
  • \.(?=[0-9])匹配一个点直接在右边声明一个数字
  • )+关闭组并重复 1+ 次

  • Regex demo

    关于c# - 使用以点开头的正则表达式匹配字符串不包括 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60801131/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com