我正在尝试创建一个简单的正则表达式,它将删除文本块中三个点之后的任何内容。不知道我应该使用什么符号,因为第一部分将不止字母和数字
例如,如果我通过
任何东西都可以在三个点之前进行 $ NC >> ... 这应该被淘汰 d& < >
我应该得到
任何东西都可以在三个点之前进行 $ NC >>
我有以下
([不知道这里发生了什么])...([这里的任何东西])替换为:$ 1
我正在尝试创建一个简单的正则表达式,它将删除文本块中三个点之后的任何内容。不知道我应该使用什么符号,因为第一部分将不止字母和数字
例如,如果我通过
任何东西都可以在三个点之前进行 $ NC >> ... 这应该被淘汰 d& < >
我应该得到
任何东西都可以在三个点之前进行 $ NC >>
我有以下
([不知道这里发生了什么])...([这里的任何东西])替换为:$ 1
您没有说出您尝试过的内容或正在使用的 RE 语法,因此这对您来说可能不正确,但想法是:
^\(.*\)\.\.\..*$
分解:
^ - start of line
.* - zero or more of anything
\(.*\) - the above tagged
\.\.\. - three dots, escaped to match a literal dot
.*$ - anything else till end of line
正如我所说,您的语法可能与此不完全相同,但关键是您可能需要转义三个点以使它们成为文字,因为大多数 RE 使用点作为特殊字符。
点代表任何字符。0+ 次重复的星号。So.*
代表任意长度的(可选)字符串。要搜索点,您必须避开它们。
此表达式将搜索后跟 3 个点的任何内容:.*\.\.\.
在末尾添加可选字符串:.*\.\.\..*
然后附上您感兴趣的部分:(.*)\.\.\..*
并替换为$1
. 据我所知,在 Cocoa 中你不必逃避括号,但我不是 100% 确定。
如果您正在处理文本行,您可能还想在表达式中添加^
前缀和$
后缀。
未经测试的建议:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@".*\.\.\..*" options:nil error:&error];
[regex replaceMatchesInString:myString options:nil range:range withTemplate:@"$1"];