正则表达式 提取内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式 提取内容相关的知识,希望对你有一定的参考价值。

比如源码中包含

</span><span data-jsx="468416" data-reactid="41">要提取的内容<br>

</span><span data-jsx="24661" data-reactid="79">要提取的内容<br>

</span><span data-jsx="2643468" data-reactid="113">要提取的内容<br>

</span><span data-jsx="271131960" data-reactid="215">要提取的内容<br>

这个该怎么写,谢谢各位解答

//javascript 代码示例
var text = \'</span><span data-jsx="468416" data-reactid="41">要提取的内容< br>\'
var reg = /data-reactid="\\d+">(.*)< br>/g;
var group1 = reg.exec(text)[1];//要提取的内容

/**
正则中,使用()包含起来的内容可以捕获;
要正确匹配要捕获的内容,跟要处理的字符串环境有关,越复杂的字符串,正则就越复杂;像(.*)就只能捕获没换行符的内容,
**/
参考技术A <span .*?>(.+?)<br>

正则表达式 -- 提取并替换 ${} 之间的内容

一、提取 ${} 之间的内容

  1、正则表达式

  技术图片

 

  2、用 Python的正则 提取

  技术图片

   技术图片

 

 

二、替换 ${}  之间的内容

  1、替换

  技术图片

 

  2、封装成专门的替换函数

import re


def my_split(resource_data: str, split_content: dict):
    """
    :param resource_data: 被替换的原数据
    :param split_content: 需要替换的内容
    """
    matches = re.findall(r"(?<=${).*?(?=})", resource_data)  # 提取需要替换的目标

    new_data = None  # 替换后的数据
    for i in matches:  # 替换过程
        new_value = split_content[i]
        if i == matches[0]:
            new_data = resource_data.replace("${" + i + "}", str(new_value))
        else:
            new_data = new_data.replace("${" + i + "}", str(new_value))
    return new_data


# 开始调试
old_data = {"access-token": "${token}", "data": ${user_id}, "phone_code": ${code}}
spilt_data = {"token": "123asf6549qewA+-*asd", "user_id": [1, 2, 3, 4], "code": 1356}

new_data0 = my_split(old_data, spilt_data)
print(new_data0)  # {"access-token": "123asf6549qewA+-*asd", "data": [1, 2, 3, 4], "phone_code": 1356}
data_dict = eval(new_data0)
print(type(data_dict["access-token"]))  # <class ‘str‘>
print(type(data_dict["data"]))  # <class ‘list‘>
print(type(data_dict["phone_code"]))  # <class ‘int‘>

 

以上是关于正则表达式 提取内容的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式如何匹配提取括号中的内容

c#用正则表达式提取小括号中的内容

正则提取中间的内容?

PHP正则表达式取文本中间内容。

正则表达式 -- 提取并替换 ${} 之间的内容

正则表达式提取括号内的所有内容