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

时间:2015-07-01 08:28:59

标签: java python regex classpath

Python :(。py文件)

我必须在java complile的同时将属性文件的路径传递到类路径中。

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

当JARFILE具有版本45.33时,上面的代码工作正常。但是我怎样才能动态地给出路径:

  

“ - DpropertyFile”:   “WEB-INF /库/ JARFILE-(正则表达式)的.jar:/properties/somefile.property”

NB: 版本(45.33)可以是任意数量的charector。示例如下:

Beta-44.55
Beta1-33.33
7777.ee44
44.22222

1 个答案:

答案 0 :(得分:0)

您可以使用以下

执行此操作
>>> 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个或更多元素。

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