我在Python/Ruby/PHP中定义了一个正则表达式,如下所示
"(forumdisplay.php\?.*page=%CURRENTPAGE%)"当我为Java做这件事时,我必须将这个问号双重转义到\\?
如下所示:
"(forumdisplay.php\\?.*page=%CURRENTPAGE%)";有没有一个函数可以让我自动完成这项工作?或者我是否需要更改所有的正则表达式才能使用Java正则表达式引擎?
发布于 2012-04-18 05:16:47
在https://www.regexplanet.com/advanced/java/index.html上试用这个在线工具
它接受您的普通正则表达式并输出与Java兼容的字符串表达式。节省了我自己转换巨大的正则表达式字符串的大量时间。
注意,并不是所有的正则表达式都能在java中工作。我见过奇怪的PHP验证正则表达式,它只是在java模式匹配中表现不同而已。
发布于 2010-06-01 04:22:51
请注意,这不是需要双反斜杠的Java正则表达式引擎,而是Java编译器。当您用Java源代码编写以下代码时:
"(forumdisplay.php\\?.*page=%CURRENTPAGE%)"Java编译器将其解释为字符串:
(forumdisplay.php\?.*page=%CURRENTPAGE%)然后,Java正则表达式引擎做与其他正则表达式引擎完全相同的事情-问号(因为它是转义的)被逐字处理。
在Python中也会发生类似的事情-下面的两个字符串是相同的:
r"(forumdisplay.php\?.*page=%CURRENTPAGE%)"
"(forumdisplay.php\\?.*page=%CURRENTPAGE%)"这是对“原始”字符串使用Python r表示法,其中反斜杠不被编译器解释。
发布于 2010-06-01 04:22:33
就我个人而言,我在Eclipse中使用来自站点http://www.bastian-bergerhoff.com/eclipse/features/的优秀插件
你会发现有用于正则表达式的QuickREx和我经常使用的XPath developper插件。
对于QuickREx,只需测试您的正则表达式,然后按下按钮将其复制到活动编辑器中,并使用正确的转义字符。
这是必须的,试一试吧。
https://stackoverflow.com/questions/2945783
复制相似问题