【问题标题】:How can filter variations of the word 'the' using a regex in C#?如何在 C# 中使用正则表达式过滤单词“the”的变体?
【发布时间】:2011-01-16 06:42:45
【问题描述】:

我对编写正则表达式完全陌生。我正在尝试编写一个不允许在文本框中使用以下术语的正则表达式。

【问题讨论】:

  • 第一个the和最后一个the有什么区别?
  • 不,我有一个更大的要求,我不想在这里详细讨论,因为我说过我对编写正则表达式是完全陌生的,如果你认为它可能是一个家庭工作问题是的,但我正在努力完成它。
  • 下载 expresso,帮助编写正则表达式的好工具
  • 像“WHAT H END”这样的情况呢?既然 THE 是连续的,它应该匹配吗?

标签: c# regex textbox filtering


【解决方案1】:

这取决于您使用的语言,但您可以指定不区分大小写。

如果您想要一个检查它是否存在的正则表达式,请尝试:

(the|t\sh\se)

【讨论】:

  • 那个角色类没有做你认为它正在做的事情。
  • 你的第二个表达式不起作用。 [^(the|t\sh\se)] 表示(the|\s) 之外的一个字符
【解决方案2】:

如果您想匹配“WHAT H ELL”之类的内容,只需从字符串中删除所有空格,然后得到“WHATHELL”,然后查找“THE”

如果您不包括这些情况,则使用此正则表达式并关闭区分大小写

\bt\s*h\s*e\b

结果

WHAT H E - fail
The - success
T he - success
th E - success
t h e - success
the - success
them - fail
hasthem - fail
has them - fail

【讨论】:

  • 乍得您的解决方案效果很好,但是我认为它是编辑器问题,我认为您实际上说的是“t\sh\se”,我认为 /b 和 \ b 由于编辑而被附加。所以“t\sh\se”就是答案...
  • 不,我添加了 \b\b 因为它们是单词边界。区分“这是句子”。有“the”这个词,来自句子“我也会和他们一起去”。带有单词“them”的短语周围没有 \b,它将匹配单词“them”。这就是为什么你应该下载并使用 expresso 来编写和测试正则表达式。
  • 嘿,感谢您的回复,顺便说一句,我怎样才能关闭区分大小写?
  • new Regex("\\bt\\sh\\se\\b", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);跨度>
【解决方案3】:

我建议使用http://www.regular-expressions.info,他们有一个非常好的快速入门指南和一个非常完整的教程。当我第一次学习正则表达式时,它对我帮助很大。

【讨论】:

    【解决方案4】:

    /t ?h ?e/i 将匹配上述任何变体(以及其他变体,例如 T hE)。

    您如何拒绝与此模式匹配的输入取决于您使用的语言和库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      相关资源
      最近更新 更多