gpt4 book ai didi

java - 如何否定 java 正则表达式中的星号?

转载 作者:行者123 更新时间:2023-11-30 07:23:32 25 4
gpt4 key购买 nike

我正在尝试创建一个正则表达式来帮助 Eclipse 的搜索找到所有包含 start( 的行,但注释行除外。

也就是说,找到像这样的行:

 is not sufficient because it doesn't guarantee that start(b) is 

不是这样的行:

 * is not sufficient because it doesn't guarantee that start(b) is

我已经能够想出正则表达式 (\s*?)(?!\*)(.*)(start\()(.*$) 但它发现 < em>两行。

如何排除以 * 开头的行(可能在一些空格之后)并包含没有它的行?

最佳答案

对于以空格开头的行,\s*? 可能匹配零个空格,然后 (?!\*) 匹配一个空格和 .* 尾符匹配行的其余部分,包括星号。

解决方案是将前导空白序言放在否定子句中:

^(?!\s*\*).*start\(.*$

或者,您可以使用所有格量词来吃掉所有空格,并且从不回溯:

^\s*+(?!\*).*start\(.*$

关于java - 如何否定 java 正则表达式中的星号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11961617/

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