繁体   English   中英

如何在字符串中查找值,操作和替换它们

[英]How to find values in string, manipulate and replace them

如何在字符串中查找值,为每个值添加特定的值,然后将输出替换为固定的字符串。

import re
def _replace(content):
    #x = float(content.group(4))+20
    #y = float(content.group(6))+20
    return content.group(6)
print re.sub('<g(\s)transform="matrix\((.*)(\s)(.*)(\s)(.*)\)\"', _replace, '<g transform="matrix(0.412445 -0.0982513 0.0982513 0.412445 -5.77618 67.0025)">')

首先,我应该重复关于不使用正则表达式解析XML的常规警告。 这是一个坏主意,它永远不会在所有情况下起作用。 如果您实际上是想解析完整的xml文档,请使用XML解析器

话虽这么说,我一直都在做这样的快速而肮脏的事情,这让我感到内gui。 如果您确实只需要一次性解决方案,那么简单的正则表达式通常可以完成工作。 请注意,一旦遇到更复杂的问题,它就会再次困扰您!

接下来,我承认自己并不是一个正则表达式向导,但是这是我修改您的代码段的方法:

import re

def _replace(content):
    values = [float(val) for val in content.group(2).split()]
    values[3] += 20
    values[5] += 100
    values = ['{0}'.format(val) for val in values]
    return content.group(1) + ' '.join(values) + content.group(3)

test_string = '<g transform="matrix(0.412445 -0.0982513 0.0982513 0.412445 -5.77618 67.0025)">'
pattern = r'(transform=\"matrix\()(.*?)(\))'
print test_string
print re.sub(pattern, _replace, test_string)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM