gpt4 book ai didi

Python 正则表达式 - 排除某个匹配项

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

我只想捕获以下内容:

  • .1
  • ,2
  • '3

.,' 后面的数字可以是任何数字,并且可以在其之前或之后包含任何内容。例如,.1 abc,我只想捕获1或abc,2,我只想捕获2。

因此,如果我们有以下内容:

10,000
1.1
,1
.2
'3
'100.000
.200,000
'300'000
abc'100,000
abc.4
abc,5
abc'6
abc 7
,8 abc
.9 abc
'10 abc
.11abc
,12abc

我有以下 python 正则表达式:

((?<![0-9])([.,':’])([0-9]{1,4}))

问题是它在 '100.000 中捕获 '100,在 0.200,000 和 '300'000 中捕获 0.200 - 我怎样才能阻止它捕获这个。因此它不应捕获 '100.000 或 .200,000 或 '300'000 或 abc'100,000 等。

我用它来测试我的正则表达式:https://pythex.org/

我为什么要这么做?我正在将 InDesign 文件转换为 HTML,在某些转换中脚注不起作用,因此在 SublimeText 上使用 RegReplace 来查找脚注并将其替换为特定的 HTML。

<小时/>

只是想让它更清楚,因为有人评论说不清楚。

我想捕获一个带有 . , ' 之前,例如:

This is a long string with subscript footnote numbers like this.1 Sometimes they have a dot before the footnote number and sometimes they have a comma,2 Then there are times when it has an apostrophe'3 Now the problem with my regex was that it was capturing the numbers after a dot, comma or apostrophe for values like this 30,000 or 20.000 or '10,000. I don't want to capture anything like that except like this'4 or like this.5 or like this ,6

所以我试图用我的正则表达式做的是在点、逗号和撇号之前查看是否有数字,如果有那么我不想捕获任何数字,例如'10,000 或 .20.000 或 ,15'000

现在 mypetlion 已经最接近,但他的正则表达式没有捕获列表中的最后 3 个,让我看看我可以用他的正则表达式做什么。

最佳答案

如果我没记错的话,您不想捕获 '100.000 或 .200,000 或 '300'000 或 abc'100,000 但您确实想捕获包含 [.,'] 的其余部分 后跟一位或多位数字。

您可以匹配它们,然后使用 alternation | 并在组中捕获您想要匹配的内容:

[.,']\d+[.,']\d+|[.,'](\d+)

详细信息

  • [.,']\d+[.,']\d+ 匹配字符类中的字符之一,一位或多位数字并匹配字符类中的字符之一 (您不想捕获的模式)
  • | 或者
  • [.,'](\d+) 匹配字符类中的一个字符,并捕获一组中的一个或多个数字。

您的值将位于捕获的组 1 中

Demo

关于Python 正则表达式 - 排除某个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50628396/

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