获取结束的文件。 ,你可以这样做:
1.R
list.files(path='/home/test', all.files=TRUE, pattern="\\.$")
或
list.files(path='/home/test', all.files=TRUE, pattern=".+\\.$")
必须加倍\在R中,既不能使用.+\.$
也不能使用\.$
2.python
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.shell
find /home/test -regex ".+\.$"
也可以在shell中使用“。+ \。$”
我想知道
1. .+\\.$
和.+\.$
之间的posix方式是什么?
2.为什么我不能在shell中使用find /home/test -regex "\.$"
?
答案 0 :(得分:1)
您输入的内容与正则表达式引擎最终看到的内容之间存在差异。
可能有两个问题:
我的工具(R,Python,find)能理解什么样的正则表达式?
例如,如果您使用Python;您应该问re
模块支持哪种语法?
如何输入正则表达式?
例如,".+\.$"
中的find -regex ".+\.$"
首先由shell解释。那么问题就是你的shell如何解释".+\.$"
?一旦你回答了问题,你可以问find
支持哪种正则表达式语法?
POSIX regexes期望\.
模式中的单个反斜杠(以匹配文字点),但要在特定环境中输入它,您可能需要两个反斜杠,例如,在Python "\\."
和r"\."
是一样的。
答案 1 :(得分:0)
您是否阅读过?regexp
?它写在那里。从我看到的'POSIX 1003.2'开始使用正则表达式。