相关疑难解决方法(0)

参考 - 这个正则表达式意味着什么?

这是什么?

这是常见问答的集合.这也是社区Wiki,因此每个人都被邀请参与维护.

为什么是这样?

患的是给我泽码型的问题和答案不佳,没有解释.此参考旨在提供质量问答的链接.

范围是什么?

此引用适用于以下语言:,,,,,,.

这可能过于宽泛,但这些语言共享相同的语法.对于特定功能,它背后的语言标签,例如:

  • 什么是正则表达式平衡组?

regex

52
推荐指数
1
解决办法
11万
查看次数

Python 正则表达式中可变宽度后视的替代方案

我最近决定跳入 Python 池的最深处并开始将我的一些 R 代码转换为 Python 并且我被困在对我来说非常重要的事情上。在我的工作中,我花费了大量时间来解析文本数据,众所周知,文本数据非常非结构化。因此,我开始依赖正则表达式的环视功能,而 R 的环视功能非常强大。例如,如果我正在解析一个 PDF,当我对文件进行 OCR 时,它可能会在字母之间引入一些空格,我会得到我想要的值,如下所示:

oAcctNum <- str_extract(textBlock[indexVal], "(?<=ORIG\\s?:\\s?/\\s?)[A-Z0-9]+")
Run Code Online (Sandbox Code Playgroud)

在 Python 中,这是不可能的,因为使用?使后视成为可变宽度表达式而不是固定宽度。这个功能对我来说非常重要,它阻止了我想要使用 Python,但我不想放弃这种语言,我想知道 Pythonista 解决这个问题的方法。我是否必须在提取文本之前预处理字符串?像这样的东西:

oAcctNum = re.sub(r"(?<=\b\w)\s(?=\w\b)", "")
oAcctNum = re.search(r"(?<=ORIG:/)([A-Z0-9])", textBlock[indexVal]).group(1)
Run Code Online (Sandbox Code Playgroud)

有没有更有效的方法来做到这一点?因为虽然这个例子是微不足道的,但这个问题以非常复杂的方式出现在我处理的数据中,我不想对我分析的每一行文本进行这种预处理。

最后,如果这不是问这个问题的正确地方,我深表歉意;我不知道还有什么地方可以张贴。提前致谢。

python regex lookaround

5
推荐指数
1
解决办法
602
查看次数

标签 统计

regex ×2

lookaround ×1

python ×1