[ ]*(?P[^\([^\)]+-6ren">
gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 06:44:05 24 4
gpt4 key购买 nike

我在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com