如何在Emacs中为正好3位数字创建一个正则表达式?

如何在Emacs中为正好3位数字创建一个正则表达式?

How do I create a regex in Emacs for exactly 3 digits?

我想在Emacs中创建一个正好匹配3位数字的正则表达式。 例如,我要匹配以下内容:

1
2
3
123
345
789

但不是

1
2
3
1234
12
12 23

如果使用[0-9]+,则匹配任何单个数字字符串。 我以为[0-9]{3}可以工作,但是在重建器中测试时,它什么都不匹配。


如果要以交互方式输入正则表达式,并且想要使用{3},则需要使用反斜杠来避免花括号。如果您不想匹配数字较长字符串的任何部分,请使用\b匹配数字周围的单词边界。这留下:

1
\b[0-9]\{3\}\b

对于那些想要有关\b的更多信息的人,请参阅文档:

matches the empty string, but only at the beginning or end of a word. Thus, \bfoo\b
matches any occurrence of foo as a separate word.
\bballs?\b matches ball or balls as a separate word.
\b matches at the beginning or end of the buffer regardless of what text appears next to it.

如果您确实希望像往常一样从elisp代码中使用此正则表达式,则必须再转一次反斜杠。例如:

1
(highlight-regexp"\\b[0-9]\\{3\\}\\b")

[0-9][0-9][0-9][0-9]{3}\d{3}不起作用,因为它们也匹配" 1234"。

因此,这取决于分隔符是什么。

如果在变量中,则可以执行^/[0-9]{3}/$。如果由空格分隔,则可以执行\w+[0-9]{3}\w+


正如其他人指出的,您不仅需要匹配三位数。在输入数字之前,您必须先行开始或输入非数字的内容。如果emacs支持 D,请使用它。否则,请使用设置[^ 0-9]。

简而言之:

1
(^|\D)\d{3}(\D|$)

您应该使用此:

1
"^\d{3}$"

在Emacs中试验正则表达式时,我发现regex-tool非常有用:

ftp://ftp.newartisans.com/pub/emacs/regex-tool.el

不是一个答案(问题已经回答),只是一个一般性提示。


[0-9] [0-9] [0-9]至少要匹配3个数字,因此正如Joe所提到的,您必须(至少)包含 b或其他将分隔数字的字符。最可靠的方法可能是:

[^ 0-9] [0-9] [0-9] [0-9] [^ 0-9]


很简单:

1
[0-9][0-9][0-9]

推荐阅读

    linux匹配文件名命令?

    linux匹配文件名命令?,系统,时间,发行,位置,工具,软件,名称,盘后,电脑,盘中,l

    linux命令匹配数字?

    linux命令匹配数字?,数字,档案,位置,环境,名字,较大,系统,权限,命令,用户,Lin

    linux权限数字命令?

    linux权限数字命令?,数字,系统,地址,权限,命令,标准,情况,管理,基础,文件,lin

    linux路由匹配命令?

    linux路由匹配命令?,信息,地址,系统,电脑,设备,服务,网络,时间,数字,情况,Lin

    字符串查找命令linux?

    字符串查找命令linux?,系统,字符串,工具,信息,文件,命令,字符,选项,文本,范

    linux命令替换字符串?

    linux命令替换字符串?,字符串,文件,批量,首次,数据,命令,内容,方法,用字,结

    linux拼接字符串命令?

    linux拼接字符串命令?,系统,工作,代码,工具,名称,信息,地址,时间,数据,命令,l

    linux命令行空格匹配?

    linux命令行空格匹配?,系统,电脑,地址,空格,短线,名称,服务,网络,工具,引号,

    添加字符串命令linux?

    添加字符串命令linux?,情况,名称,文件,位置,名字,地方,连续,信息,命令,内容,L

    linux排序数字命令?

    linux排序数字命令?,标准,数字,单位,情况,系统,信息,命令,文件,顺序,参数,lin

    linux命令不能打数字?

    linux命令不能打数字?,工作,密码,数字,地址,电脑,系统,命令,设备,下来,预期,

    linux命令查找字符串?

    linux命令查找字符串?,工具,信息,命令,字符串,系统,工作,文件,范本,样式,文

    linux命令匹配符应用?

    linux命令匹配符应用?,工具,系统,信息,命令,文件,数据,工作,标准,字符串,选

    linux字符匹配命令?

    linux字符匹配命令?,工作,地址,管理,系统,工具,标准,命令,目录,信息,文件,Lin

    linux命令正则表达式?

    linux命令正则表达式?,工作,环境,基础,网络,单位,名称,平台,信息,正规,管理,L

    linux生成数字命令?

    linux生成数字命令?,密码,数字,设备,环境,名称,时间,单位,地址,信息,系统,求

    linux命令字符串匹配?

    linux命令字符串匹配?,系统,工具,命令,字符串,灵活,状态,文件,文本,模式,管

    linux中匹配字符命令?

    linux中匹配字符命令?,系统,信息,命令,标准,工具,数据,字符串,文件,文本,管

    python创建一个集合?

    python创建一个集合?,异常,代码,括号,元素,函数,方法,两个,整数,操作,字符串

    python字符串截取?

    python字符串截取?,代码,步长,位置,分析,字符串,字符,信息,灵活,数字,表示,在