问题标签 [re]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
55 浏览

python - 如何检查字符串是否具有多个正则表达式并捕获匹配的部分?

我想要的是

我正在使用一个django表单,它需要输入密码。我需要传递多个正则表达式的输入值,这将测试是否:

  • 至少一个字符是小写的
  • 至少一个字符是大写的
  • 至少一个字符是数字
  • 至少有一个字符是特殊字符(符号)
  • 最少 8 个字符

我想知道哪些条件已经满足,哪些没有。

我做了什么

0 投票
0 回答
160 浏览

python - 用于大型 Unicode 文本的 Python 查找器或子程序

我必须将多次出现的标记替换为大型 Unicode 文本文档。目前我正在迭代我的字典中的单词并用sub编译的正则表达式替换:

我的话正则表达式就像

这意味着必须编译一个新的正则表达式,然后sub对每个令牌(如果存在或不存在于文档中)进行调用text。作为替代方法,可以使用re.finditer查找令牌的出现,然后在找到令牌时调用re.sub

从而避免re.sub在实际不需要时调用。最后一种方法可以使用re.finditer组结果进行改进:

在这些方法中,哪种方法更快?

0 投票
1 回答
158 浏览

python - 如何使用 python regex 解析此日志并使用 pandas 导出到 excel(可选)?

我有一个以下格式的日志文件。对于每一行,我需要捕获第三列,例如0102b69880c4b330,相应的消息DM_FT_INDEX_T_INIT_INDEX_AGENT_MSG及其各自的计数(请参阅输出)。我认为使用正则表达式可以让我更轻松地解决问题。

说明

案例 1:ID 出现0102b69880c4b3303 次(第 1、2、3 行)。所以 ID 的计数是 3,相应的消息DM_FT_INDEX_T_INIT_INDEX_AGENT_MSG也出现了 3 次,所以计数为 3。

案例 2:现在0102b69880c4e3b2第 4 行和第 5 行的 ID 有两条不同的消息JMS DO_METHOD TRACE LAUNCH, DO_METHOD TRACE LAUNCH,ID 计数为 2,但它们的消息计数应分别为 1、1。

案例3:第0102b6988000000c10行到最后一行的ID有消息DM_WORKFLOW_E_PROCESS_AUTO_TASK。ID 计数为 3,消息计数为 3。但这里我需要获取此错误消息旁边的流程任务 ID 和工作流 ID。

[Ignore for this]在输出中使用只是解释我不需要 id。

最后我还需要保持DM_WORKFLOW_E_PROCESS_AUTO_TASK.

我尝试过的测试程序如下。我没有在 ID 列之后正确使用正则表达式,我只是选择了包含 [] 中的值的值,但它跳过了那个没有。它也不选择流程任务 ID 和工作流 ID。你能帮我修改我的代码以获得正确的计数、任务 ID 和工作流 ID 吗?

输出是:

0 投票
1 回答
302 浏览

python - 如何修复 TypeError:预期的字符串或类似字节的对象

我试图让我的程序从这个文件中获取句子,以便以后可以使用它,但它给了我一个错误:

这是我的代码:

0 投票
1 回答
57 浏览

python - 正则表达式(re.search)无法检测错误

我正在尝试检测 CSV 文件中的数据错误re.search,其中不正确的数据(与给定模式不匹配)将被发送到一个列表(错误),而正确的数据(与模式匹配)将被发送到另一个列表(干净)。

这是数据在 CSV 文件中的样子:

这是我的代码:

所以,在我运行代码后,我得到:

显然代码只检查第一列(pid)并忽略其余部分。预期的结果应该是这样的:

到目前为止,我无法找到错误或找到任何替代解决方案。

0 投票
2 回答
1127 浏览

python - 使用组的多个正则表达式或条件

我正在尝试用一个正则表达式匹配几种不同的文件名语法。换句话说,我试图以不同的顺序将文件名字符串与相同的字符匹配。问题是我不知道如何将“OR”串在一起 | 涉及团体的情况。

组语法:

  • 产品名称由任意字母组成,任意数字带有可选的“-”、“_”或字符之间的空格。“-”、“_”或空格绝不会出现在产品名称的开头或结尾。
  • PAF 或 PA 总是有一个前导“-”,后跟一个尾随“-”,然后是一个数字。
  • 修订代码由“FG”、“RD”、“X”、“A”或“\d+”组成,除了最后一个直接跟在后面的数字之外,所有这些都是一个数字。
  • 工作表编号是小写或大写(因此称为 re.IGNORECASE),前面有一个“-”空格或什么都没有,然后是“工作表”这个词,后面是“-”空格或什么都没有,然后是一个数字。

文件名遵循以下模式:

  • (产品名称)-(PAF/PA-#) (Sheet #)-(Revision)
  • (\w(?:\w*(?:-|\s|_)?\w+)*)(-PA(?:F|)-\d+)(?:(?:\s|-)表(?:\s|-)\d+)(-(?:FG|RD|X|A|)\d+)
  • (产品名称)-(PAF/PA-#)-(修订版) (表#)
  • (\w(?:\w*(?:-|\s|_)?\w+)*)(-PA(?:F|)-\d+)(?:(?:\s|-)表(?:\s|-)\d+)(-(?:FG|RD|X|A|)\d+)
  • (产品名称)-(PAF/PA-#)-(修订版)
  • (\w(?:\w*(?:-|\s|_)?\w+)*)(-PA(?:F|)-\d+)(-(?:FG|RD|X|A |)\d+)
  • (产品名称)-(修订版)(表号)
  • (\w(?:\w*(?:-|\s|_)?\w+)*)(-(?:FG|RD|X|A|)\d+)(?:(?:\s |-)工作表(?:\s|-)\d+)
  • (产品名称)-(修订版)
  • (\w(?:\w*(?:-|\s|_)?\w+)*)(-(?:FG|RD|X|A|)\d+)

PAF PA 是产品类型表示,Sheet # 是无用信息,FG#、RD#、X#、A# 或 # 都是产品版本。我需要产品名称、外延和修订都在他们自己的组中。

我已经尝试了上面的正则表达式,但它不能正常工作。首先它返回的组太多,我只想要 3 个。

上述字符串应与正则表达式匹配。

0 投票
1 回答
62 浏览

python - 如何创建正则表达式模式以将字符从各种结构的字符串列表中提取出来?

我正在使用正则表达式从地址字符串中提取字母“u”,但仅当它用作缩写时(u、u.、U、U. 等)。但是,我正在运行的问题是我拥有的字符串列表很乱并且充满了错误。我已经尝试从我在数据中看到的各种错误中提取我需要的东西。我知道我一定遗漏了一些小东西,但感谢您提供任何帮助。

我试过这些正则表达式:

  • (\s(u|U)?.?,?.?\s) <- 看起来有点时髦
  • [^\w+][uU]
  • [^\w+][uU][^tca]

我还有另一个解决这个问题的想法,这需要拆开地址(在街道、号码等之间分割),然后修复街道部分并将其粘在一起。我有一些运气实际上只是将数字部分拉出来:

  • (\d+-\d+|\d+/*\w*|(-))

但是,我想看看我在应该选择“u”的正则表达式中哪里搞砸了。Regex101.com 一直是我最好的朋友,如果没有它,我不会走到这一步。

上述代码的结果:

第一个正则表达式模式:

第二个正则表达式模式:

除了第一个正则表达式模式中的最后一行(“Houlics utca tca 5”)外,一切正常,当我尝试创建一个表达式来考虑包含“utca”的字符串时,我失去了像“Holics”这样的字符串中的数字u5/a。”

在大多数情况下,我希望结果是:

  • Holics你。5/a -----> Holics utca 5/a

最后一点,我有删除句点和空格的函数。

0 投票
2 回答
260 浏览

python - 用于捕获科学引文的 RegEx

我正在尝试捕获其中至少包含一位数字的文本括号(想想引文)。这是我现在的正则表达式,它工作正常:https ://regex101.com/r/oOHPvO/5

所以我希望它能够捕获(Author 2000)(2000)但不是(Author)

我正在尝试使用 python 来捕获所有这些括号,但在 python 中,即使它们没有数字,它也会捕获括号中的文本。

任何想法我做错了什么?

0 投票
2 回答
58 浏览

python - 解析包含文件名的文件并忽略具有多个点字符的条目?

我有一个包含一堆文件名的文件,即:

我试图忽略所有带有多个点的文件名。目前我可以使用以下方法找到所有文件名:

但是,这会打印出所有文件名。我怎样才能修改它只打印出来:hello.txtgoodbye.py

0 投票
1 回答
54 浏览

python - 按照给定模式搜索单词

我想得到'MASTER_INACTIVE'字符串中的单词:

通过搜索 reg-expression'p_esco_link->state ='来查找以下单词。

我必须替换对 API 函数的日期访问。我在 python 3.6 中尝试了一些 reg-expression,但它不起作用。

Python re 模块除外,可以找到 的位置'MASTER_INACTIVE'并将其放入result.group(). 错误信息是 Python re 模块什么也没找到。