【问题标题】:Regular Expression to match only whitespace正则表达式仅匹配空格
【发布时间】:2013-03-14 01:24:21
【问题描述】:

如何编写只匹配空格的正则表达式?

我有一个 Ruby 应用程序,它允许我根据正则表达式匹配我的电子邮件主题和正文。我无权访问代码。

我正在尝试对空的电子邮件正文采取措施。如果电子邮件正文包含所有换行符和空格字符,则正则表达式应该匹配。如果只有一个字母数字字符,它将不匹配。正则表达式应允许在电子邮件正文的开头和开头有空格。

以下电子邮件正文将不匹配。我已经突出显示它以显示换行符。

将匹配以下电子邮件正文。

我用 Rubular 尝试过各种事情

我能得到的最好的结果是^\s*$,但这匹配换行符。

【问题讨论】:

  • 我以为你说你想匹配换行符?
  • 我建议您发布您想要匹配的电子邮件和您想要跳过的电子邮件的示例。
  • 这是我说的吗?我可以将换行符与单个 ​​RegEx 匹配,但其他条件呢?
  • @TroyWitthoeft:谢谢,但请不要链接到文本图像。把它粘贴到问题中,不会太长。
  • @Bergi 你介意告诉我如何发布在顶部包含换行符的代码吗?自动格式化程序会吃掉它们。

标签: ruby regex whitespace


【解决方案1】:

不清楚你的意思,但这是一个匹配只包含空格的字符串的正则表达式:

/\A\s*\z/

【讨论】:

    【解决方案2】:

    我会说sawa有你想要的,但否定它更简单:

    str !~ /\S/ # true if str contains no non-whitespace chars
    str !~ /\w/ # true if str contains no alphanumeric chars (plus _)
    

    【讨论】:

    • 我无法使用代码。所以我不能使用str !~ 来检查正则表达式的逆。但是这些表达方式可能会派上用场,谢谢。
    【解决方案3】:

    没有正则表达式:

    p "  \n  \t".strip.empty? #=> true
    

    【讨论】:

    • “不能使用代码”是什么意思?您不允许编写解决方案并且必须打印并使用剪刀将违规行从页面中剪掉? 60 年代。
    • 这不是时间机器,只是注册表输入通过应用程序暴露出来。我正在使用应用程序,但无法编辑应用程序代码。不过感谢您的建议!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2016-11-04
    • 1970-01-01
    • 2018-02-16
    • 2010-10-08
    • 2020-08-22
    相关资源
    最近更新 更多