C#Regex:如何匹配没有被“括”起来的数字&引用;及/&引用;

C#Regex:如何匹配没有被“括”起来的数字&引用;及/&引用;,c#,regex,C#,Regex,我想编写一个工具,通过查看SVN日志来帮助我们构建变更日志。我需要的所有提交都是以#100:Description或100:Description 在我们的提交消息中,有一些东西会造成问题,例如: 更新至7.11.0.10版 来自服务器/存储库/分支/71109的合并修订版:#150:错误描述 我需要忽略被和/包围的数字。 到目前为止,我有/(#{0,1})\d{3,6}/g可以提取任何数字,包括我不想要的数字。使用分隔符周围的空格可以知道你在哪里吗 [#,\s](\d+)\s:\s(.*)

我想编写一个工具,通过查看SVN日志来帮助我们构建变更日志。我需要的所有提交都是以
#100:Description
100:Description

在我们的提交消息中,有一些东西会造成问题,例如:

  • 更新至7.11.0.10版
  • 来自服务器/存储库/分支/71109的合并修订版:#150:错误描述
我需要忽略被
/包围的数字。


到目前为止,我有
/(#{0,1})\d{3,6}/g
可以提取任何数字,包括我不想要的数字。

使用分隔符周围的空格可以知道你在哪里吗

[#,\s](\d+)\s:\s(.*)
这样行吗? 请添加两行示例,我可以编辑我的答案以匹配它们。

(?:

  • (?和
    (?![\/\.])
    将阻止任何前导或尾随的
    /
    符号
  • 这两个
    \b
    都将假定匹配为单个单词
  • #?\b\d+\b
    是发行号的实际匹配项,而
    #
    是可选的

已尝试?您正在使用正则表达式处理的是多行文本吗?如果是,您需要多行修饰符和线锚的开头。您说您想忽略由
/
包围的数字,但您的正则表达式建议您只想忽略这些字符前面的数字。是哪一个uld您可以发布预期的输出吗?为什么不像Wiktor建议的那样只使用单词锚的开头?您的要求不清楚。请提供更多示例。@Ryanyuu:
^
是字符串的开头或行锚的开头。
\b
是单词边界。@WiktorStribiżew给出的第二个示例实际上建议使用单词边界因为问题的数量可能在一个字符串的中间,而不仅仅是在BEGGIN中。谢谢,看起来和@ WikTrrBiBi EW评论一样。谢谢你花时间来解释每一个部分所做的事情。@WiktorStribiżew没有被两个单词边界包围,这与说它是一个单词是一样的?在
#
之前的
\b
需要一个单词字符出现在它之前才能匹配。