在Java中,下面的rergex是什么意思
我正在努力解释这里使用的正则表达式在Java中,下面的rergex是什么意思,java,regex,Java,Regex,我正在努力解释这里使用的正则表达式(?I)(^ |[^\\p{L}]&&&&\\D])(todo)($|[^\\p{L}]&&&&\\D]): 它配什么?我理解关于忽略案例的部分。我不明白的部分是[[^\\p{L}]&&&\\D]-它真的与p,{,L字符集中的字符?可能会有帮助。我已经尝试过这个,以及其他类似的工具,它们似乎无法正确解释它。SONAR源代码检查应该匹配任何带有TODO的语句,例如//TODO(avj)[JIRA-12345]:添加单元测试,但regex 101似乎不同意“SONA
(?I)(^ |[^\\p{L}]&&&&\\D])(todo)($|[^\\p{L}]&&&&\\D])
:
它配什么?我理解关于忽略案例的部分。我不明白的部分是
[[^\\p{L}]&&&\\D]
-它真的与p
,{
,L
字符集中的字符?可能会有帮助。我已经尝试过这个,以及其他类似的工具,它们似乎无法正确解释它。SONAR源代码检查应该匹配任何带有TODO的语句,例如//TODO(avj)[JIRA-12345]:添加单元测试
,但regex 101似乎不同意“SONAR源代码检查预计会…”—显然不会。首先,在逻辑组的捕获组中使用&
而不是&
。其次,在[
和]
中,所有内容都按原样计算,因此[[]
匹配[
。第三,您缺少了一些*
。第四,在第三个捕获组(todo之后的部分)中,正则表达式拒绝数字,但在示例中,您在todo
的右侧有一个数字。