首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将正则表达式转换为java兼容的正则表达式的简单方法?

将正则表达式转换为java兼容的正则表达式的简单方法?
EN

Stack Overflow用户
提问于 2010-06-01 04:14:04
回答 4查看 35.2K关注 0票数 16

我在Python/Ruby/PHP中定义了一个正则表达式,如下所示

代码语言:javascript
复制
"(forumdisplay.php\?.*page=%CURRENTPAGE%)"

当我为Java做这件事时,我必须将这个问号双重转义到\\?

如下所示:

代码语言:javascript
复制
"(forumdisplay.php\\?.*page=%CURRENTPAGE%)";

有没有一个函数可以让我自动完成这项工作?或者我是否需要更改所有的正则表达式才能使用Java正则表达式引擎?

EN

回答 4

Stack Overflow用户

发布于 2012-04-18 05:16:47

https://www.regexplanet.com/advanced/java/index.html上试用这个在线工具

它接受您的普通正则表达式并输出与Java兼容的字符串表达式。节省了我自己转换巨大的正则表达式字符串的大量时间。

注意,并不是所有的正则表达式都能在java中工作。我见过奇怪的PHP验证正则表达式,它只是在java模式匹配中表现不同而已。

票数 23
EN

Stack Overflow用户

发布于 2010-06-01 04:22:51

请注意,这不是需要双反斜杠的Java正则表达式引擎,而是Java编译器。当您用Java源代码编写以下代码时:

代码语言:javascript
复制
"(forumdisplay.php\\?.*page=%CURRENTPAGE%)"

Java编译器将其解释为字符串:

代码语言:javascript
复制
(forumdisplay.php\?.*page=%CURRENTPAGE%)

然后,Java正则表达式引擎做与其他正则表达式引擎完全相同的事情-问号(因为它是转义的)被逐字处理。

在Python中也会发生类似的事情-下面的两个字符串是相同的:

代码语言:javascript
复制
r"(forumdisplay.php\?.*page=%CURRENTPAGE%)"
"(forumdisplay.php\\?.*page=%CURRENTPAGE%)"

这是对“原始”字符串使用Python r表示法,其中反斜杠不被编译器解释。

票数 4
EN

Stack Overflow用户

发布于 2010-06-01 04:22:33

就我个人而言,我在Eclipse中使用来自站点http://www.bastian-bergerhoff.com/eclipse/features/的优秀插件

你会发现有用于正则表达式的QuickREx和我经常使用的XPath developper插件。

对于QuickREx,只需测试您的正则表达式,然后按下按钮将其复制到活动编辑器中,并使用正确的转义字符。

这是必须的,试一试吧。

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

https://stackoverflow.com/questions/2945783

复制
相关文章

相似问题

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