我有以下正则表达式,它在 JAVA 代码中运行良好
[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?
但在 Java 脚本中同样不起作用
谁能告诉我这个问题的解决方案
谢谢阳光伴侣
最佳答案
我将这些集合中的最后一个连字符作为第一个字符:
Before:
[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]
After:
[-A-Za-z0-9!#$%&'*+/=?^_`{|}~]
连字符允许使用一定范围的字符。如果它是该组的第一个字符,它将被视为连字符。否则,它可能意味着“从 '~' 到 ']'”
但是,如果没有精确的问题,就很难准确地回答。
编辑:
我已经在 simple JavaScript RegEx tester 上测试了这个表达式,我发现它是为了匹配电子邮件地址。在我用单反斜杠 \
替换双反斜杠 \\
后,它对我有用。
在 JavaScript 中,以下两个应该工作相同:
var re = /a\.c/;
var re = new RegExp("a\\.c");
但是第二个需要双反斜杠,因为它包含在字符串中,需要转义。如果所有其他方法都失败,请检查 Mozilla Developer Center .
但是,再次强调,如果没有精确的问题,就不可能给出精确的答案。而且,当您尝试改进问题时,您更有可能发现错误。
关于javascript - 正则表达式在java代码中工作但在javascript代码中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4041482/