Python regex search或compare with escape characters不返回tru

2024-09-21 00:44:34 发布

您现在位置:Python中文网/ 问答频道 /正文

试图找出这些不可比较的原因:

import re
re.search( "Hello \\ World", "Hello \\ World" ) <> None
or
re.search( r"Hello \\ World", r"Hello \\ World" ) <> None

我正在用代码中用于执行操作的数据测试从JSON格式的数据库返回的数据。我之所以使用re,是因为有时我想问返回的内容是否包含部分短语。所以re给了我很大的灵活性。我原以为原始比较会起作用,但事实并非如此,当然,我不能期望数据库返回原始字符串。我无法控制数据库中的内容,因此我想找到一种方法来允许这些比较工作。非常感谢你的建议/意见。提前准备。你知道吗


Tags: or数据代码importrenone数据库json
1条回答
网友
1楼 · 发布于 2024-09-21 00:44:34

正则表达式中的几个问题

  1. regex搜索默认区分大小写,您提交的单词大小写不同
  2. 第一个例子:双反斜杠,不是raw,用反斜杠翻译,转义正则表达式中的以下空格(转义空格等于空格:does nothing)。为了得到一个匹配你必须做

    print(re.search( "Hello \\ world", "Hello World" ,re.IGNORECASE))(注意字符串中要匹配的2个空格)

  3. 第二个示例:双反斜杠,raw,用反斜杠字符翻译,反斜杠转义正则表达式中的以下空格。要获得匹配,您必须:

    print(re.search( r"Hello \\ world", r"Hello \ World" ,re.IGNORECASE))

现在测试这两种说法:它是有效的

<_sre.SRE_Match object; span=(0, 12), match='Hello  World'>
<_sre.SRE_Match object; span=(0, 13), match='Hello \\ World'>

(在编写regex时始终使用r前缀,这就少了一个问题)

相关问题 更多 >

    热门问题