跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

Python 中的正则表达式:反斜杠的介绍和使用


KaiWn

推荐的帖子

  •  

    那么,什么是正则表达式或正则表达式?

    可以说,您已经整理了电子邮件地址的编写方式,并且您有一个包含数千个电子邮件地址的列表,这些地址可能有效也可能无效。因此,要检查所有这些电子邮件地址的有效性,而不是一个一个地检查它们,如果有一定的 图案 这可以验证该电子邮件地址的有效性。正则表达式是一种编码这种模式的方法。

    一个正则表达式 是一种特殊的字符序列,有助于在不同类型的数据上匹配字符串或字符串集或特定模式。正则表达式用于搜索引擎、文字处理器和文本编辑器的搜索和替换对话框、模式匹配、网络抓取、数据提取等等。

    在 Python 中使用正则表达式

    在 python 中,正则表达式模块可以通过导入模块来使用:

    624b108938eb618b9d109a1bd096640b.jpg

    编译正则表达式

    正则表达式需要编译成Pattern对象,以便进一步实现搜索等各种操作。 模式匹配 ,或执行字符串替换。

    re.compile(模式,标志)

    94e10af953c950c910dfe5be7467207e.jpg

    在输出中,我们可以看到该模式有一个标志为 re.UNICODE 这是一个默认标签。它表明传递的文本或模式被视为 UNICODE。与 ASCII 相比,UNICODE 支持大量字符。还有许多其他标志可用于各种功能。例如,re.I ( 或忽略大小写 ) 标志可用于忽略正则表达式模式中的字母大小写。

    d46c56845f2711fe3fe2f73640df0876.jpg

    在这里,因为我们使用了标志 re.I ,我们已指示程序 忽视  信箱 .因此该模式将匹配所有字母大小写。

    表演比赛

    由于我们已经创建了一个模式对象,可以对其进行各种匹配操作。用于执行匹配的不同方法是:

    在这里,因为我们使用了标志 re.I ,我们已指示程序 忽视  信箱 .因此该模式将匹配所有字母大小写。

    a7ba5aa9550f1d45a89a9d4b42c87ec8.jpg

    回覆。 匹配()
    如果字符串开头的零个或多个字符与 RE 匹配,则返回 匹配对象 .

    在多行模式下,它也只匹配字符串的开头,而不是每行的开头。

    c3961afc162a95cc3aa13ebcc58e08b0.jpg

    如果字符串与模式不匹配,则返回 None。

    df74fb62e3344691e0b6c89b7d730d6b.jpg

    回覆。 搜索()
    扫描通过 细绳 寻找 RE 的第一个位置 图案 产生匹配。它用于在任何地方定位匹配 细绳 .

    0dc8e35691b07c329f3ef7be28a66ff2.jpg

    回覆。 找到所有()
    返回所有不重叠的匹配项 图案 在 细绳 , 作为字符串或元组的列表。正如我们所见 寻找 是一个字符串列表。

    e1a2a9336f4c6d6dfa3105760b59c4f3.jpg

    回覆。 分裂()
    返回所有非重叠匹配 图案 在 细绳 作为一个 迭代器。 我们可以看到输出中 match_i 的类型是 callable_iterator .

    现在,让我们举个例子:

    5f051d1f540e5daba9cbf36ac9bc311b.jpg

    在这里,模式是 $1,我们可以清楚地看到正在执行搜索操作的文本中包含 $1。
    但为什么输出是“无”?

    它与称为元字符的东西有关。找不到 $1 的原因是因为符号 '$' 是 元字符 在正则表达式中使用。

    元字符被认为是正则表达式的构建块。正则表达式是用于匹配字符串中的字符组合的模式。元字符在查找模式方面具有特殊意义,主要用于定义搜索条件和任何文本操作。

    那么这是否意味着我们不能使用 $ 符号?

    答案是,我们可以使用它!但是为此我们需要使用另一个元字符''(反斜杠)来转义元字符。

    47092420ebb2a6bfff0873b9cab71283.jpg

    在这里,我们在模式中使用了反斜杠,以明确我们想要转义 $ 元字符并将其用作简单字符或文字字符。

    现在让我们再举一个例子,
    正如我们发现的那样,使用反斜杠我们可以转义元字符。但在某些情况下,它可能不会像我们想象的那样工作。

    我们知道转义字符。一些最常用的转义字符是 \n(换行符)、\t(制表符)、'(单引号)、\\(反斜杠)等。我们在编写 Windows 目录地址等内容时使用反斜杠在 Python 中,我们需要使用两个反斜杠。

    1db5c5e7620dac9071c7ed47efcd2afd.jpg

    (\t 添加制表符空间,\n 给出新行。)

    为了按预期打印字符串,我们需要使用 '\' 两个连续的反斜杠。

    a65907a2d8f80d5309b010df76159233.jpg

    (在双反斜杠 \\ 中,第一个转义第二个以暗示实际的反斜杠。)

    还有另一种方式。我们可以使用原始字符串,而不是使用双反斜杠。

    6886672437fddaf31fad838d6d5a78d3.jpg

    Python 原始字符串是通过在字符串文字前加上 'r' 来创建的。它将反斜杠 (\) 视为文字字符。

    让我们看看这个例子,

    a1d80bc8b53610c98df68219063accbe.jpg

    变量“addrs”用原始字符串初始化。在模式中使用四个反斜杠的目的是让解释器首先将其解释为两个反斜杠,然后在这两个反斜杠中,一个反斜杠有助于转义另一个反斜杠。

    除了使用四个反斜杠,我们还可以使用原始字符串并使用两个反斜杠。

     模式 = re.compile(r"C:\\Sect")

    这里使用两个反斜杠是为了将反斜杠用作正则表达式中的文字。

  •  
链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...