获取以 . 结尾的文件,您可以执行以下操作:
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"使用正则表达式。