Scala Play:无效' @'电子邮件正则表达式中的符号

时间:2017-09-01 08:32:11

标签: regex scala playframework playframework-2.6

我试图输入一个使用pattern属性的输入正则表达式来确保有效的用户名(下面的正则表达式中的^[a-zA-Z0-9_]{6,12}$部分)或输入电子邮件我的Scala Play模板。使用Play模板,@用于指示HTML的中断,并且" Scala来到这里",所以当我有输入行并尝试在电子邮件中包含@使用时。它抱怨道:

  

无效' @'符号

我试过了:

  1. 正常进行
  2. 三重引号,@
  3. 之前没有转义字符
  4. @
  5. 之前的一个转义字符
  6. @之前的两个转义字符(有和没有三引号)

    图案=#&34; ^ [A-ZA-Z0-9 _] {6,12} $ | / ^ [A-ZA-Z0-9#$%&安培;!' + / = ?^ _`{|}〜 - ] + @ [A-ZA-Z0-9 - ] +(?:[A-ZA-Z0-9 - ] +) $ /&#34; < / p>

    图案=&#34;&#34;&#34;!^ [A-ZA-Z0-9 _] {6,12} $ | / ^ [A-ZA-Z0-9#$%&安培?;' + / = ^ _`{|}〜 - ] + @ [A-ZA-Z0-9 - ] +(?:[A-ZA-Z0-9 - ] +) $ /&#34;&#34;&#34;

    图案= ^ [A-ZA-Z0-9 _] {6,12} $ | / ^ [A-ZA-Z0-9#$%&安培;!?“ + / = ^ _` {|}〜 - ] + \ @ [A-ZA-Z0-9 - ] +(?:[A-ZA-Z0-9 - ] +) $ /&#34;

    图案=#&34; ^ [A-ZA-Z0-9 _] {6,12} $ | / ^ [A-ZA-Z0-9#$%&安培;!' + / = ?(?:[A-ZA-Z0-9 - ] +)| ^ _`{}〜 - - ] + \ @ [A-ZA-Z0-9] + $ /&#34;

  7. 有什么想法吗?

    (编辑唉很抱歉,SO赢了,不会显示input个标签中的内容,而且它也不会让我将上面的内容格式化为代码,所以我只需要添加模式= &#34; ...&#34;在我的原始帖子之后没有格式化,道歉。)

1 个答案:

答案 0 :(得分:3)

可以通过将符号加倍来执行Scala Play模板中的@转义。

使用@@在文字中引入文字@

但是,由于您在此处使用正则表达式,请注意也可能使用十六进制\u0040 or \x40(但仅当\是文字时,即应该为正则表达式引擎进行转义,像"""\u0040"""一样,因此Scala不会将其解析为Unicode字符。)