实例:假设你有一个字符串变量 text,你想删除所有仅含 1~3 位数字的行:
^\d+ 或 ^\d{1,3} 只匹配行首开始的数字,但不保证整行只有这些数字。
公式:m)^\d{1,3}$
含义:
使用了 m) 修饰符(multiline mode),让 ^ 和 $ 匹配每一行的开头和结尾,而不是整个字符串的开头结尾。
注意:如果行中包含空格(如 " 123" 或 "123 "),上述正则将不匹配。如果你也想删除前后有空白的“纯数字行”,可以改用:
^ 表示行的开始。
\d{1,3} 表示 1 到 3 个数字。
$ 表示行的结束。
在 AutoHotkey v2 中,如果你要使用正则表达式来匹配并删除仅包含 1 到 3 位数字的整行(即该行除了这 1~3 个数字外没有其他字符,包括空格),那么正确的正则表达式应为:^\d{1,3}$
注意:如果行中包含空格(如 " 123" 或 "123 "),上述正则将不匹配。如果你也想删除前后有空白的“纯数字行”,可以改用:m)^\s*\d{1,3}\s*$
好的。如果要匹配三位数字,这三位数字前/后或中间都有可能有空格,也可能没有空格,甚至还可能连续二行或三行,分别出现一个数字或两个数字,或一行只出现一个数字,这公式该如何写?
又例文本内容如下:
234
磊在在在
3
4
5
磊在在在
磊在在在
12
5
磊在在在
磊在在在
65 4
磊在在在
磊在在在
5 2
1
磊在在在
233磊在在在
公式:m)^\s*\d(?:\s*\d){0,2}\s*$
执行结果(单独的数字行删除了,不管周边有无空格。而有其它字符如汉字英语字母的混合行则保留没动。):
磊在在在
磊在在在
磊在在在
磊在在在
磊在在在
磊在在在
磊在在在
磊在在在
233磊在在在