gpt4 book ai didi

c# - 如何使用正则表达式强制执行单行?

转载 作者:太空宇宙 更新时间:2023-11-03 21:25:59 24 4
gpt4 key购买 nike

我需要一个 Regex将拒绝跨多行传播的任何字符串的对象。

我希望它成功:

"This is my string"

这失败了:

"This is my string" + Environment.NewLine + "that spreads acrosss" + Environment.NewLine + "multiple lines."

我一直在阅读 documentation on MSDN并假设以下应该有效:

  • 正则表达式模式:"^.+"
  • Regex 对象使用此模式初始化,没有任何选项(没有 RegexOptions.SinglelineRegexOptions.Multiline)。

使用多行字符串进行测试时,Regex.IsMatch 方法始终返回 true。我相信这是因为 IsMatch 将在至少有一部分字符串与模式匹配时返回 true。

在我的例子中,新行之前的任何内容都会导致匹配。失败的唯一方法是字符串只有换行符而没有其他字符。

是否有Regex 验证方法将字符串视为一个整体,而不是将其拆分为匹配的子字符串?我怀疑我可能需要更复杂的字符串模式来实现我的目标。

最佳答案

您可以使用此正则表达式来匹配单行:

^[^\r\n]+$

并且您不需要对这个正则表达式使用 RegexOptions.Multiline

关于c# - 如何使用正则表达式强制执行单行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27021546/

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