如何为不以“/”开头但以“,”或“.”结尾的行设置正则表达式还是“+”?
How to set regex for lines that don't start with '/' and end with ',' or '.' or '+'?
我有源代码,我想查找所有以逗号、点或加号结尾的行 ',' , '.' , '+'
、
所以,我有这个:(\,|\.|\+)$
- 显示以这些符号中的任何一个结尾的行。
但我想忽略以 // 开头的行 - 注释行,它们前面可以有任意数量的 space。
我试过忽略以 / 开头的行:^[^/].*
但这并不能很好地工作。然后我也尝试把: \s*
放在开头忽略所有 spaces,但仍然效果不佳。
所以,我的正则表达式是这样的:\s*^[^/].*(\,|\.|\+)$
- 跳过开头的所有 spaces 并忽略那些以 / 作为第一个符号并显示那些以 ,.+[ 结尾的行=16=]
但这仍然会找到以 space 和 / 开头的行。我做错了什么?
编辑:
以下是示例行:
...
// increase no of objects...
counter := 1+
2;
...
我需要忽略以 // 开头的注释行,但需要所有以 .,+ 结尾的行,因为我需要重新格式化它们。
使用一个正则表达式执行此操作的唯一方法是使用负向回顾。但是,您最终会得到一个以 ^(?<!\s*\/)
开头的正则表达式,由于 lookbehind 中的量词,它是无效的。
这意味着唯一有效的方法是使用多个正则表达式。
你想要的行将匹配这个(字面意思是 "a comma, a dot or a plus sign at the end of the line"):
[,.+]$
但不是这个(字面意思是"zero or more spaces followed by a forward slash at the beginning of the line"):
^\s*\/
也许可行:
^(?!/|\s*/)+.*[\,\.\+]$
此正则表达式忽略所有以 /
开头或零个或多个空格后跟 /
并以 ,
、.
或 [=15] 结尾的行=].
希望对你有用。
编辑:可以减少:
^(?!\s*/)+.*[\,\.\+]$
我测试了这个正则表达式,你怎么看,它忽略行 192
并匹配 210
,但它不会忽略块注释内的行,因为它没有开始/
.
我有源代码,我想查找所有以逗号、点或加号结尾的行 ',' , '.' , '+'
、
所以,我有这个:(\,|\.|\+)$
- 显示以这些符号中的任何一个结尾的行。
但我想忽略以 // 开头的行 - 注释行,它们前面可以有任意数量的 space。
我试过忽略以 / 开头的行:^[^/].*
但这并不能很好地工作。然后我也尝试把: \s*
放在开头忽略所有 spaces,但仍然效果不佳。
所以,我的正则表达式是这样的:\s*^[^/].*(\,|\.|\+)$
- 跳过开头的所有 spaces 并忽略那些以 / 作为第一个符号并显示那些以 ,.+[ 结尾的行=16=]
但这仍然会找到以 space 和 / 开头的行。我做错了什么?
编辑: 以下是示例行:
...
// increase no of objects...
counter := 1+
2;
...
我需要忽略以 // 开头的注释行,但需要所有以 .,+ 结尾的行,因为我需要重新格式化它们。
使用一个正则表达式执行此操作的唯一方法是使用负向回顾。但是,您最终会得到一个以 ^(?<!\s*\/)
开头的正则表达式,由于 lookbehind 中的量词,它是无效的。
这意味着唯一有效的方法是使用多个正则表达式。
你想要的行将匹配这个(字面意思是 "a comma, a dot or a plus sign at the end of the line"):
[,.+]$
但不是这个(字面意思是"zero or more spaces followed by a forward slash at the beginning of the line"):
^\s*\/
也许可行:
^(?!/|\s*/)+.*[\,\.\+]$
此正则表达式忽略所有以 /
开头或零个或多个空格后跟 /
并以 ,
、.
或 [=15] 结尾的行=].
希望对你有用。
编辑:可以减少:
^(?!\s*/)+.*[\,\.\+]$
我测试了这个正则表达式,你怎么看,它忽略行 192
并匹配 210
,但它不会忽略块注释内的行,因为它没有开始/
.