python正则表达式匹配不起作用

时间:2016-03-07 12:03:09

标签: python regex

这可能是一个愚蠢的问题,但我无法让它发挥作用。

TrustStrategy trustStrategy = new TrustSelfSignedStrategy();
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(trustStrategy).build();
HostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE;

StatusLine statusLine;
try (CloseableHttpClient httpclient = HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier(hostnameVerifier).build()) {
    HttpGet httpGet = new HttpGet(deviceStatusURI);
    ...
}

我想匹配任何不包含数字的字符串。但它总是引发ValueError。

import re
def name_validator(value):
    reg = re.compile(r'^\D*&')
    if not reg.match(value):
        raise ValueError

1 个答案:

答案 0 :(得分:2)

  

我想匹配任何不包含数字的字符串。

\D匹配非数字符号。 ^\D*$匹配空字符串和任何没有数字的字符串。

您需要使用

reg = re.compile(r'\D*$') # Note  DOLLAR symbol at the end
if not reg.match(value):

或者

reg = re.compile(r'^\D*$') # Note the CARET symbol at the start and the DOLLAR symbol at the end
if not reg.search(value):