我在配置文件中有以下内容:
property = 10 //this one
#property = 10 //and this one
#this is a test for #property
#this is a test for property
而我正试图想出一个正则表达式来匹配前两种情况:
#property.*|^property.*
到目前为止,我所做的是:
^#property.*|^property.*
[^\s]#property.*|^property.*
这就是结果:
我尝试了其他变种,但结果发生了变化:
DataSource
以下是我正在使用的在线正则表达式的链接:
https://regex101.com/r/K2tm75/2
我将在grep命令中使用此正则表达式作为bash脚本的一部分。
答案 0 :(得分:2)
您需要确保在字符串的开头匹配#property
或property
。
我建议
^#?property.*
或 - 仅匹配=
和最后的数字:
^#?property *= *[0-9]+$
^#?property.*
匹配输入的开头,然后是可选的#
(#?
匹配1或0次匹配,然后property
然后匹配任何0+字符)。
第二种模式 - ^#?property *= *[0-9]+$
- 匹配一个类似的开头,但是,在property
之后,匹配零个或多个空格,=
,零个或多个空格,然后是1个数字和字符串结尾($
)。