gpt4 book ai didi

java - Python 和 Java 在 RegEx 语法上的差异

转载 作者:太空狗 更新时间:2023-10-29 22:07:05 24 4
gpt4 key购买 nike

我在 Python 中有一个有效的正则表达式,我正在尝试转换为 Java。看起来在实现上有细微的差别。

正则表达式正试图匹配另一个正则表达式。有问题的 RegEx 是:

/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)

它有问题的字符串之一是:/\s+/;

reg ex 不应该匹配结尾的 ;。在 Python 中,RegEx 可以正常工作(并且不匹配结尾的 ;,但在 Java 中它确实包含 ;

问题:

  1. 我该怎么做才能让这个 RegEx 在 Java 中运行?
  2. 根据我阅读的内容 here这个正则表达式应该没有区别。 Python 与 Java 中的 RegEx 实现之间是否存在差异列表?

最佳答案

对于一小部分情况,Java 不像 Python 那样解析正则表达式。在这种特殊情况下,嵌套的 [ 导致了问题。在 Python 中你不需要转义任何嵌套的 [ 但你需要在 Java 中这样做。

原始正则表达式(用于 Python):

/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/([gim]+\b|\B)

固定的 RegEx(用于 Java 和 Python):

/(\\.|[^\[/\\\n]|\[(\\.|[^\]\\\n])*\])+/([gim]+\b|\B)

关于java - Python 和 Java 在 RegEx 语法上的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10492180/

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