这是正则表达式中的标准 posix 方式:双 或单



获取以 . 结尾的文件,您可以执行以下操作:
1.R

list.files(path='/home/test', all.files=TRUE, pattern="\.$")

list.files(path='/home/test', all.files=TRUE, pattern=".+\.$")

必须在R中双\,既不能使用.+.$也不能使用.$

2.蟒蛇

import os
import re
for   root,   dirs,   files   in   os.walk("/home/test"):
    for file in files:
        if re.search(".+.$",file):
            print file

可以在 Python 中使用 .+\.$.$\.$

3.外壳

find /home/test  -regex  ".+.$"

也可以在外壳中使用".+\.$"

我想知道
1..+\.$.+.$之间的泊位方式是什么?
2.为什么我不能在外壳中使用find /home/test -regex ".$"

您键入的内容与正则表达式引擎最终看到的内容之间存在差异。

可能有两个问题:

  • 我的工具(R,Python,找到)理解什么风格的正则表达式?

    例如,如果你使用Python;你应该问re模块支持什么语法?

  • 如何输入正则表达式?

    例如,find -regex ".+.$"中的".+.$"首先由 shell 解释。所以问题就变成了你的外壳如何解释".+.$"?回答后,您可以问find支持哪种正则表达式语法?

POSIX 正则表达式期望.模式中有一个反斜杠(以匹配文字点),但要在特定环境中输入它,您可能需要两个反斜杠,例如,在 Python 中"\."r"."是相同的。

你读过?regexp吗?它写在那里。从我所看到的"POSIX 1003.2"使用正则表达式。

最新更新