python 使用正则表达式搜索和更新字符串

2023-12-07

我有下面的字符串,我可以抓住'text'我想要什么(文本在图案之间扭曲)。代码如下,

val1 = '[{"vmdId":"Text1","vmdVersion":"text2","vmId":"text3"},{"vmId":"text4","vmVersion":"text5","vmId":"text6"}]'


temp = val1.split(',')
list_len =  len(temp)

for i in range(0, list_len):
    var = temp[i]
    found = re.findall(r':"([^(]*)\&quot\;', var)
    print ''.join(found)

我想用用户提供的新值或通过读取另一个 XML 来替换值(Text1、text2、tex3 等)。 (Text1、tex2 .. 是完全随机的字母数字数据。下面是一些详细信息

Text1 = somename
text2 = alphanumatic value
text3 = somename

Text4 = somename
text5 = alphanumatic value
text6 = somename

    anstring =
 [{"vmdId":"newText1","vmdVersion":"newtext2","vmId":"newtext3"},{"vmId":"newtext4","vmVersion":"newtext5","vmId":"newtext6"}]

我决定去replace()但后来意识到数据并不是恒定的。于是再次寻求帮助。感谢您的回复。

任何帮助,将不胜感激。另外,如果让我知道我是否可以改进我现在获取价值的方式,因为我是正则表达式的新手。


您可以通过使用来做到这一点backreferences与 re.sub 结合使用:

import re
val1 = '[{"vmdId":"Text1","vmdVersion":"text2","vmId":"text3"},{"vmId":"text4","vmVersion":"text5","vmId":"text6"}]'

ansstring = re.sub(r'(?<=:&quot;)([^(]*)', r'new\g<1>' , val1)

print ansstring

\g<1>是第一个文本().

EDIT

也许更好的方法是解码字符串,更改数据并再次编码。这应该可以让您更轻松地访问这些值。

import sys

# python2 version
if sys.version_info[0] < 3:
    import HTMLParser
    html = HTMLParser.HTMLParser()
    html_escape_table = {
        "&": "&amp;",
        '"': "&quot;",
        "'": "&apos;",
        ">": "&gt;",
        "<": "&lt;",
        }

    def html_escape(text):
        """Produce entities within text."""
        return "".join(html_escape_table.get(c,c) for c in text)

    html.escape = html_escape
else:
    import html

import json

val1 = '[{&quot;vmdId&quot;:&quot;Text1&quot;,&quot;vmdVersion&quot;:&quot;text2&quot;,&quot;vmId&quot;:&quot;text3&quot;},{&quot;vmId&quot;:&quot;text4&quot;,&quot;vmVersion&quot;:&quot;text5&quot;,&quot;vmId&quot;:&quot;text6&quot;}]'
print(val1)

unescaped = html.unescape(val1)
json_data = json.loads(unescaped)
for d in json_data:
    d['vmId'] = 'new value'

new_unescaped = json.dumps(json_data)
new_val = html.escape(new_unescaped)
print(new_val)

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 使用正则表达式搜索和更新字符串 的相关文章

随机推荐

  • EventEmitter类的清晰概念

    代码写入子组件 mycomponent ts import Component OnInit EventEmitter Output from angular core Component selector app mycomponent
  • 将 shell 变量传递给 JSON 请求以进行curl?

    让我们看下面的例子 curl i X POST H Content Type application json d jsonrpc 2 0 method Player Open params item false http example
  • 排序多维数组javascript

    我想对双精度的多维数组进行排序 该数组如下所示 1 2 2 3 5 6 8 9 我想按 X 值对其进行排序 并保持 x y 值配对 我在网站上搜索了多维排序 发现了类似的帖子these其中排序函数修改如下 location sort fun
  • 如何检查字符串是否可以转换为浮点数?

    首先 我的背景是需要将浮点文字 字符串 转换为浮点 双精度值的编译器编写者 过去 15 年我没有做过任何浮点编程 所以我很确定这是一个完全愚蠢的新手问题 double res errno 0 res strtod const char li
  • 如何设置TabHost背景颜色

    我需要帮助 我发现在 TabHost 中更改背景颜色很困难 原图 我需要修改背景颜色 如下图所示 我也在我的代码和 XML 中尝试了很多东西 但都失败了 我的代码如下 TabHost tabHost getTabHost Tab 1 Tab
  • 如何在C++中设置文件权限(跨平台)?

    我正在使用 C ofstream写出一个文件 我想将权限设置为只能由用户访问 700 在unix中 我想我可以发出一个system chmod 700 file txt 但我需要这段代码也能在 Windows 上运行 我可以使用一些Wind
  • 如何使用Robot Framework处理提示框?

    我使用 Robot Framework 和 Selenium2Library 进行网站测试自动化 在其中一种情况下 会出现一个提示框 类似于警报的弹出窗口 但其中有一个输入字段 请参阅例子在这里 要求一些文字 问题是 Robot Frame
  • FileSystemWatcher Changed 事件引发两次

    我有一个应用程序 我正在寻找一个文本文件 如果对该文件进行了任何更改 我正在使用OnChanged事件处理程序来处理事件 我正在使用NotifyFilters LastWriteTime但该事件仍然被解雇两次 这是代码 public voi
  • Java IOException - 流已关闭

    I get IOException 流已关闭 当我运行这个程序时 文本包含许多行数据 程序应该读取每一行 执行必要的功能并将输出写入新文件 我很困惑应该先关闭哪个作家以及在哪里 import java net import java io
  • 将键放在 gnuplot 中的多图下方

    正如标题所示 我想将图例放在多图下方 我只为其中一张图添加图例 因为所有图的线条样式都相同 我遇到的问题是 如果我添加密钥set key below 绘图本身会调整大小以适合画布内的 大 键 我宁愿保持地块的大小 我尝试将密钥添加为多图中的
  • 函数 .C -- 参数设置编译失败

    我目前正在学习在 R 中调用编译的 C 代码 昨天 我为无限 pi 系列创建了一个函数 当在 R 中运行时 它返回一个长度为 1 的数字向量 pi 效果很好 今天我正在研究一个输出可变长度数值向量的函数 即为用户定义的斐波那契序列计算的n
  • 调整最后一行的弹性项目的大小

    我的问题是我想要具有可变范围宽度的弹性盒 并且一切正常 但不是在最后一行 我希望所有子项都具有相同的维度 即使该行未充满子项 最后一行 products list position relative display flex flex fl
  • 不可能制作一个有大小限制的缓存线程池吗?

    似乎不可能创建一个限制其可以创建的线程数量的缓存线程池 这是静态的Executors newCachedThreadPool在标准Java库中实现 public static ExecutorService newCachedThreadP
  • 如何将嵌入的 JSON 扁平化为多个文档

    考虑以下 JSON Company ABC Company Place Bangalore Address MG Road Phone 988888 888866 365656 Mubmai Address 1st
  • 为什么 Spark 应用程序会失败并出现“线程“main”java.lang.NoClassDefFoundError: ...StringDeserializer 中的异常”?

    我正在开发一个 Spark 应用程序 该应用程序使用 Spark 和 Java 监听 Kafka 流 我使用kafka 2 10 0 10 2 1 我为 Kafka 属性设置了各种参数 bootstrap servers key deser
  • 在聊天模拟器机器人框架中显示数据

    我需要在聊天中显示大量数据 我想在机器人框架的聊天模拟器中以表格形式显示它 For eg 点餐 披萨 数量 1 时间 下午 1 点 点餐 汉堡 数量 2 时间 下午 3 点 我想以表格方式显示它 正如中所解释的docs 消息的默认文本格式是
  • 在 Kotlin 中注释属性时,注释的默认目标是什么?

    Kotlin 中的注释可以有不同的使用站点目标 如下所述 https kotlinlang org docs reference annotations html annotation use site targets 我的问题是 当未明确
  • AFRAME 屏幕到世界位置

    我正在尝试通过 Aframe 将鼠标位置转换为三中的世界坐标 使用类似的东西 let mouse new three Vector2 let camera document querySelector camera let rect doc
  • 为 Laravel 中资源的每个方法分配单独的中间件

    我在用Zizaco 委托laravel 包作为我的项目的 ACL 管理器 我知道 为了通过中间件限制对路由组的访问并为其分配角色 或权限 我应该这样做 Route group prefix gt admin middleware gt ro
  • python 使用正则表达式搜索和更新字符串

    我有下面的字符串 我可以抓住 text 我想要什么 文本在图案之间扭曲 代码如下 val1 quot vmdId quot quot Text1 quot quot vmdVersion quot quot text2 quot quot