gpt4 book ai didi

python - 如何使用 Python 使用正则表达式在字符串中搜索/查找特殊字符,例如 &、< 或 >

转载 作者:行者123 更新时间:2023-12-01 00:20:33 26 4
gpt4 key购买 nike

嗨,我正在用 python 编写一个函数,使用正则表达式在文本字符串中搜索特殊字符。

一旦找到匹配项,程序应给出错误消息并退出。

这就是我到目前为止所做的,能够搜索 ;,$,%,' 但无法在 Windows 中搜索和找到像 &、<、> 这样的字符。

下面给出的当前代码可以在 Windows 中运行,但不能在 Linux 中运行。但我想在 Windows 和 Linux 中使用这段代码。

这是我的代码:

#tests for finding special characters

import sys, re


cmd = input('Enter your command : ')


def chk_cmds(cmd):
print('chk_cmds: lets look term at %s' % (cmd))
msg = bool(re.search(r'\;|\$|\%|`', cmd))
if msg is True:
print(msg)
print('Found a suspicious entry in the command : ' + cmd)
print('Exiting the program')
return -1
sys.exit
else:
print('Command seems clean ' +cmd)
return 0
# return -1

chk_cmds(cmd)

问。我怎样才能在 Windows 和 Linux 的字符串中搜索特殊字符,例如 &、<、>。

我尝试对每个字符使用反斜杠转义字符

喜欢bool(re.search(r'\;|\$|\%|`|\&|\<|\>', cmd))但研究并未在 Windows 中找到它们。 (而且当前的以下代码似乎无法在 Linux 中运行)

最佳答案

我没有 Windows 机器,所以我无法在那里测试它,但它似乎至少可以在 Mac 上运行。

我在正则表达式中使用了字符列表而不是您的方法:

import sys
import re

def chk_cmds(cmd):
print('chk_cmds: lets look term at {}'.format(cmd))
regex = re.compile(r'[&`%;$<>]')
msg = bool(regex.search(cmd))
if msg is True:
print(msg)
print('Found a suspicious entry in the command : {}'.format(cmd))
print('Exiting the program')
return -1
else:
print('Command seems clean {}'.format(cmd))
return 0

mycmd = input('Enter your command : ')

if chk_cmds(mycmd) == -1:
sys.exit()

您的 sys.exit() 命令也没有执行任何操作,因为它是在返回之后执行的,因此我已根据函数的返回代码将其移至 if block 。

还改用 .format 进行字符串格式化,但如果您使用的是 Python 3.6 或更高版本,则应该开始使用 f-strings

关于python - 如何使用 Python 使用正则表达式在字符串中搜索/查找特殊字符,例如 &、< 或 >,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58996230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com