【问题标题】:regex: strings with a point in the middle [duplicate]正则表达式:中间有一个点的字符串[重复]
【发布时间】:2020-06-19 16:46:59
【问题描述】:

我很难使用这个正则表达式,我需要验证两个单词,它们之间有一个必需的点,没有特殊字符,没有@,没有空格,只有单词和中间的点。例如:

test.test 

我一直在尝试这个,但是它不起作用:

^[a-z']*.[a-z']+$

有人可以帮我解决这个问题吗?我已经卡了一段时间了, 提前谢谢

【问题讨论】:

  • 我不会将test.test 定义为“两个字母的字符串”。你想要一个带有 letter.letter (a.a) 或 word.word (something.something) 的字符串。
  • /^[a-z']+\.[a-z']+$/
  • 这正是我所需要的,谢谢!!!我怎样才能投票给正确的答案? @anubhava
  • 根据您运行正则表达式的位置,您需要转义正确的字符。你当然需要逃避这个点。如果您在 linux shell 上运行(例如:echo "aaa" | grep "a\+"),那么您还必须使用许多基本命令来转义 + 字符。一些后期或高级命令(如 egrep)不需要它。请务必弄清楚您的环境中需要转义的内容。
  • 您可以接受@dang 的回答,因为他是第一个发布答案的人。

标签: javascript regex validation


【解决方案1】:

点是通配符,必须用反斜杠转义,\

This Wiki on Regex 在“基本概念”下包含有关 RegEx 的通配符和其他常用字符的信息

【讨论】:

    【解决方案2】:

    用斜线转义点以使其成为文字点,否则它将匹配任何字符

    ^[a-z']+\.[a-z']+$

    在正则表达式中,点 (.) 是一个特殊字符,用于匹配任何一个字符。

    使用 反斜杠 转义任何特殊字符并按字面意思解释它;例如:

    \\ (escapes the backslash)
    \[ (escapes the bracket)
    \{ (escapes the curly brace)
    \. (escapes the dot)
    

    【讨论】:

      猜你喜欢
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      相关资源
      最近更新 更多