Python:如果我的关键字包含使用正则表达式,则列出文件

Python : To list files if my keyword contains using regular expression

Python: (.py 文件)

我必须将驻留在 jar 中的 属性 文件的路径传递给类路径,同时 java complile。

vmargs = {
"-DApplicationName" : "myApp",
"-Dport" : "8080",
"-DpropertyFile" : "WEB-INF/library/JARFILE-45.33.jar:/properties/somefile.property"
}

以上代码在 JARFILE 的版本为 45.33 时工作正常。但是我怎样才能动态地给出路径,比如:

"-DpropertyFile" : "WEB-INF/library/JARFILE-(RegEx).jar:/properties/somefile.property"

注意: 版本 (45.33) 可以是任意数量的字符。示例如下:

Beta-44.55
Beta1-33.33
7777.ee44
44.22222

您可以通过以下方式完成

>>> import re
>>> test = "WEB-INF/library/JARFILE-45.33.jar:/properties/somefile.property"
>>> sub = r"WEB-INF/library/JARFILE-[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.jar:/properties/somefile\.property"
>>> print(re.match(sub, test))
<_sre.SRE_Match object at 0x7fd9ab1de718>

这是重要的部分:

首先我们需要确保使用反斜杠正确转义所有通配符(例如“.”)。

# old
"WEB-INF/library/JARFILE-45.33.jar:/properties/somefile.property"
# new
"WEB-INF/library/JARFILE-45\.33\.jar:/properties/somefile\.property"

接下来你提到它可以是任何字符、字符串或数字,所以你可以使用下面的集合:

[a-zA-Z0-9]

这将匹配任何数字或任何字母 a-z(大写或小写),但只能匹配一个。通过在后面添加一个'+',它将匹配1个或多个元素。

我们应该能够将我们的字符串与我们的正则表达式相匹配。