java - 从 java 到 php 的正则表达式转换

标签 java php regex

我在 php 中有一个正则表达式,我需要将它转换为 java。 有可能这样做吗?如果是,我该怎么办?

提前致谢

$region_pattern = "/<a href=\"#\"><img src=\"images\/ponto_[^\.]+\.gif\"[^>]*>[&nbsp;]*<strong>(?P<neighborhood>[^\(<]+)\((?P<region>[^\)]+)\)<\/strong><\/a>/i" ;

最佳答案

从任何正则表达式到 java 的典型转换是:

  • 排除模式定界符 => 删除开头和结尾 /
  • 删除标志,这些标志应用于 Pattern对象,这是尾随 i .您应该将它放在 Pattern 对象的初始化中,或者将它添加到正则表达式中,例如 (?i)<regex>
  • 全部替换\\\ , \在 java 中已经有含义(在字符串中转义),要在 java 中的正则表达式中使用反斜杠,您必须使用 \\而不是 \ , 所以 \w变成 \\w .和 \\变成 \\\\

上面的正则表达式会变成

Pattern.compile("<a href=\"#\"><img src=\"images\\/ponto_[^\\.]+\\.gif\"[^>]*>[&nbsp;]*<strong>(?P<neighborhood>[^\\(<]+)\\((?P<region>[^\\)]+)\\)<\\/strong><\\/a>", Pattern.CASE_INSENSITIVE);

但是这会失败,我认为这是因为 ?P是一个修饰符,我知道 Java 中不存在,所以它是一个无效的正则表达式。

关于java - 从 java 到 php 的正则表达式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015938/

相关文章:

Java文件输入编译后不起作用

java - Listview onclick 中的 TextView 冲突

java - 尝试计算 Pi,但只得到 1

Javascript 到 Java Web 应用程序

php - 注册前我应该如何保存访客的帖子?

php - 小花 3 : Example of model with validation

javascript - 由于某种原因, document.getElementById().innerHTML 不起作用?

Java - 将文件分成多个部分

regex - 为什么在 ubuntu 和 windows 上使用 Text.Regex.Posix 时正则表达式匹配结果不同,这是一个错误吗?

Ruby - 解压不规则的二进制字符串