允许 5-10 个字符但中间可以有空格的正则表达式不算在内

标签 regex

问题

构建允许以下内容的正则表达式语句:

  • 最少 5 个字符
  • 最多 10 个字符
  • 可以包含空格,但空格不会增加字符数
  • 任何非空白字符都会增加字符数

  • 测试用例:
     expected_to_pass = ['testa', ' test a', 12342, 1.234, 'test a']
     expected_to_fail = [' test', 'test ', ' test ', '     ', 1234, 0.1, '           ','12345678901']
    

    正则表达式示例及其目的

    允许 5-10 个非空白字符:
    [\S]{5,10}$
    

    允许 5-10 个字符而不管空格:
    [\s\S]{5,10}$
    

    我已经放屁了几个小时,想不出最好的方法来处理这个问题。

    最佳答案

    这个怎么样?

    \s*(?:[\w\.]\s*){5,10}+$
    

    或者:
    \s*(?:[\w\.]\s*){5,10}$
    

    此外,如果任何非空白字符出现:
    \s*(?:\S\s*){5,10}$
    

    你可以测试一下 here

    关于允许 5-10 个字符但中间可以有空格的正则表达式不算在内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41862024/

    相关文章:

    regex - sed - 在进行真正的替换之前知道匹配的文本作为测试

    javascript - 使用正则表达式选择 2 个完整跨度标签之间的文本

    regex - 从字符串向量中删除方括号

    regex - 如何更好地对Powershell进行故障排除/调试

    java - 如何在java中使用正则表达式来匹配一个词

    python - 使用 python 如何在文本文件的选择行中插入字符串,其中插入的字符串取决于行的内容和已知的映射?

    ruby - 按空格拆分字符串,正确考虑引号和反斜杠(ruby)

    java正则表达式用空格替换任何单个字符

    arrays - 新人需要帮助获得正确的正则表达式

    php - 如何从欧元 (€) 表达式中删除特定的前导和尾随字符?