相关疑难解决方法(0)

带有标志的Python re.sub不会替换所有出现的内容

Python文档说:

re.MULTILINE:指定时,模式字符'^'匹配字符串的开头和每行的开头(紧跟在每个换行符之后)...默认情况下,'^'仅匹配字符串的开头...

那么当我得到以下意外结果时会发生什么?

>>> import re
>>> s = """// The quick brown fox.
... // Jumped over the lazy dog."""
>>> re.sub('^//', '', s, re.MULTILINE)
' The quick brown fox.\n// Jumped over the lazy dog.'
Run Code Online (Sandbox Code Playgroud)

python regex

57
推荐指数
3
解决办法
4万
查看次数

Python 中不区分大小写的正则表达式

我有以下 Python 正则表达式:

re =re.match(r'.*? from\s+(.*?)(\s.*|$)', q)
Run Code Online (Sandbox Code Playgroud)

这里,q 是这样的查询:

Q1 = u"select * from dlpx_jobs where job_id=\\'531\\';"

Q2 = u"select * FROM dlpx_jobs where job_id=\\'531\\';"
Run Code Online (Sandbox Code Playgroud)

现在,显然,对于 Q1,正则表达式有效,因为“from”在查询中是小写的,但对于 Q2,正则表达式不起作用,因为在 Q2 中,“from”是大写的。

无论“from”是大写还是小写,有什么方法可以使正则表达式同时适用于查询?

python regex python-2.7

4
推荐指数
1
解决办法
1万
查看次数

如何在python中拆分很长的正则表达式

我有一个很长的正则表达式。

 vpa_pattern = '(VAP) ([0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}): (.*)'
Run Code Online (Sandbox Code Playgroud)

我的匹配组代码如下:

 class ReExpr:
def __init__(self):
    self.string=None

def search(self,regexp,string):
    self.string=string
    self.rematch = re.search(regexp, self.string)
    return bool(self.rematch)

def group(self,i):
    return self.rematch.group(i)

 m = ReExpr()

 if m.search(vpa_pattern,line):
    print m.group(1)
    print m.group(2)
    print m.group(3)
Run Code Online (Sandbox Code Playgroud)

我尝试通过以下方式使正则表达式模式变为多行,

vpa_pattern = '(VAP) \
    ([0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}):\
    (.*)'
Run Code Online (Sandbox Code Playgroud)

甚至我尝试过:

 vpa_pattern = re.compile(('(VAP) \
    ([0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}):\
    (.*)'))
Run Code Online (Sandbox Code Playgroud)

但是上述方法不起作用。对于每个组,在打开和关闭括号后我都有一个空格()。我猜想当我拆分为多行时它不会恢复。

python regex

3
推荐指数
1
解决办法
373
查看次数

re.sub() 的不区分大小写的正则表达式模式存在问题

我正在 Python 中使用正则表达式进行字典操作。我想从字典项中删除1dc.comor 1DC.comor 1dc.COMor 。1DC.COM

示例词典 -

{'system_name': 'a1pvdb092', 'fdc_inv_sa_team': 'X2AIX_GBS'}
{'system_name': 'W00000001.1DC.com', 'fdc_inv_sa_team': 'LAA.BRAZIL.AAA.WINDOWS\n'}
{'system_name': 'a10000048', 'fdc_inv_sa_team': 'X2AIX_NSS'}
{'system_name': 'a10000049', 'fdc_inv_sa_team': 'X2AIX_NSS'}
Run Code Online (Sandbox Code Playgroud)

预期输出 -

['a1pvdb092']
['W00000001']
['a10000048']
['a10000049']
Run Code Online (Sandbox Code Playgroud)

脚本 -

import re
from opswareConnect import data

for row in data:
    arg1 = [row["system_name"],]
    arg1 = re.sub('[.1DC.com]\\b', '', str(arg1))
    print arg1
Run Code Online (Sandbox Code Playgroud)

脚本的输出 -

['a1pvdb092']
['WBPVAP001Dco']
['a10000048']
['a10000049']
Run Code Online (Sandbox Code Playgroud)

python regex dictionary case-insensitive

2
推荐指数
1
解决办法
2685
查看次数

标签 统计

python ×4

regex ×4

case-insensitive ×1

dictionary ×1

python-2.7 ×1