这是一个简单的正则表达式,我尝试使用一些在线测试工具并且它可以工作,但是当我在代码中运行它时,它没有。
开始编辑:根本找不到任何匹配项。我要做的是检查配置文件中的一行是否包含http
设置。因此,如果某行是extraintf=
,我想将其更改为extraintf=http
,如果该行为extraintf=rc:ncurses
,我想将其更改为extraintf=rc:ncurses:http
,如果该行为{ {1}}我想将其更改为#extraintf=
。我正在使用正则表达式找到该行的位置和长度,一旦我有行的开始和长度我写了一些测试和工作代码将做上述罚款,它只是找到匹配的范围是问题。 结束编辑
这是我的正则表达式:
extraintf=http
我希望它找到所有这些文件的中间行:
File1中:
^#?extraintf=.*$
文件2:
# Interface module (string)
#intf=
# Extra interface modules (string)
extraintf= //match this line
# Control interfaces (string)
#control=
文件3:
# Interface module (string)
#intf=
# Extra interface modules (string)
extraintf=rc //match this line
# Control interfaces (string)
#control=
然后我检查匹配的方式是:
# Interface module (string)
#intf=
# Extra interface modules (string)
#extraintf= //match this line
# Control interfaces (string)
#control=
答案 0 :(得分:4)
您需要在选项中添加NSRegularExpressionAnchorsMatchLines
。这样,^
和$
就可以匹配行的开头和结尾。
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^#?extraintf=.*$"
options:NSRegularExpressionCaseInsensitive|NSRegularExpressionAnchorsMatchLines
error:NULL];
答案 1 :(得分:0)
您是否尝试过放松这样的比赛?
"^[^e]?extraintf=.*$"