首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式在java代码中工作,但在javascript代码中不工作

正则表达式在java代码中工作,但在javascript代码中不工作
EN

Stack Overflow用户
提问于 2010-10-28 17:27:49
回答 2查看 138关注 0票数 0

我有以下正则表达式,它在JAVA代码中运行良好

代码语言:javascript
复制
[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脚本中不起作用

有人能告诉我解决这个问题的办法吗?

谢谢Sunny Mate

EN

回答 2

Stack Overflow用户

发布于 2010-10-28 18:42:47

我会把这些集合中的最后一个连字符作为第一个字符:

代码语言:javascript
复制
Before:
[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]
After:
[-A-Za-z0-9!#$%&'*+/=?^_`{|}~]

连字符将允许一定范围的字符。如果它是集合中的第一个字符,它将被视为连字符。否则,它可以表示“从'~‘到']'”。

但是,如果没有一个确切的问题,就很难准确地回答。

EDIT:我在simple JavaScript RegEx tester上测试了这个表达式,我发现它是为了匹配电子邮件地址。在我将双反斜杠\\替换为单反斜杠\后,它对我起作用了。

在JavaScript中,以下两个功能应该是相同的:

代码语言:javascript
复制
var re = /a\.c/;  
var re = new RegExp("a\\.c");  

但是第二个需要双反斜杠,因为它包含在一个字符串中,这需要转义。如果所有其他方法都失败了,请检查Mozilla Developer Center

但是,再说一次,如果没有一个确切的问题,就不可能给出一个准确的答案。更重要的是,当你试图改进你的问题时,你更有可能找到你的bug。

票数 2
EN

Stack Overflow用户

发布于 2010-10-28 17:29:34

正则表达式在每种编程语言中略有不同,请参考手册/文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4041482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档