python重新匹配字符串

时间:2017-04-22 10:26:32

标签: python regex python-2.7

以下是代码:

import re
a = "safe-Zoned-area"
b = "Safe-zoned-Area"
print(re.search(a, b, re.IGNORECASE))
c = "safe_Zoned-area"
d = "Safe-zoned-Area"
print(re.search(c, d, re.IGNORECASE))

我可以在第一个print语句中匹配区分大小写的字符串。

用户将在上面的代码中提供输入,假设它在上面的代码示例中是变量d,

有时用户输入safe_zoned-area。有些用户会输入Safe_Zoned_Area。

这里的要点是我们应该匹配用户在安全和分区以及区域和区域之间输入下划线或连字符。

注意:这些是模式和文本中的变量。

d =由我定义 c =从用户输入中获取

请帮忙。

3 个答案:

答案 0 :(得分:1)

将正则表达式定义为

r"Safe[-_]zoned[-_]Area"

此处,[-_] 字符类将与-_匹配。

查看Python test

import re
ss = [ "safe-Zoned-area","safe_Zoned-area","safe-Zoned_area"]
rx = r"Safe[-_]zoned[-_]Area"
print([re.search(rx, s, re.IGNORECASE) for s in ss])

答案 1 :(得分:1)

import re

c = "safe_Zoned-area"
d = "Safe-zoned-Area"
print(re.search(d,c.replace('_','-'), re.IGNORECASE))
c = "safe-Zoned-area"
d = "Safe[-_]zoned[-_]Area"
print(re.search(d,c, re.IGNORECASE))

答案 2 :(得分:0)

我没有得到以下结果:

z=re.search(r'\w+\wAPP_ROLES\.\w+',text)

而我得到以下输出:

z=re.search(r'\w+\wROLES\.\w+',text) as APP_ROLES. Can anyone tell me what should I change in the first code. I need to put only APP_ROLES from the text.