如何使用正则表达式在Sublime Text 3中选择整数和单位名称之间的文本?

路西法63

目的是在使用regex的Sublime Text 3中在整数和单位名称之间选择文本。我这样想:首先选择整数和单位名称,然后选择它们之间的所有内容:

(?<=(1))(2)(?=(3))

正则表达式1应该捕获整数,正则表达式3应该捕获所需的单元名,正则表达式2仅捕获这两个组之间的所有整数。

这是我写的表达式:

  1. (((?<=\d)([-−,*\s]|(X·))(?=\d))|(\d))+
  2. (.{1,10}?)
  3. ((?<=\d)|(?<=\b))(моль|мкм|мф|нм|лм|кг|кд|Гц|Кл|К|Дж|Вт|м|с|ф|А)(?=\b)

#1和#3可以正常工作,#2和#3的组合也可以,但是#1 +#2和#1 +#2 +#3不起作用,原因是错误“在正则表达式中遇到无效的后置断言” 。因此,我认为错误在于第一组:(?<=(1))如果将我的#1插入其中,则整个表达式将如下所示:

(?<=((((?<=\d)([-−,*\s]|(X·))(?=\d))|(\d))+))

此表达式给我错误“在正则表达式中遇到无效的向后声明”。

表达式有什么问题?它应该与精确的捕获表达式结合使用,因此为了测试它,我使用了此表达式(#1 +#2):

(?<=((((?<=\d)([-−,*\s]|(X·))(?=\d))|(\d))+))(.*+)

我尝试从后面的元素中删除元素,直到它开始工作为止,并且仅在只有一个元素时才起作用:

(?<=(\d))(.*+)

即使将量词添加到,也会产生错误\d这不起作用:

(?<=(\d+))(.*+)

我该如何在正后方插入我的正则表达式#1?我不知道为什么它不起作用。

提前致谢!

PS:单位是俄语,所以这是我用来测试正则表达式的文本:

9 192 631 770 Гц[15];
299 792 458 м/с[15];
6,022 14X·1023 моль−1;
540·1012 Гц
1 мкм-
1 мкм
1мкм
1&#160;мкм
12 мкм
12мкм
12&#160;мкм
500 647 м
500 647м
12 нм
12нм
12&#160;нм
12 сс

更新:正则表达式的最终版本和工作版本:

((((?<=\d)([-−,*·\s]|(X·))(?=\d))|(\d))+)\K(.{0,10}?)(?=(((?<=\d)|(?<=\b))(моль|мкм|мф|нм|лм|кг|кд|Гц|Кл|К|Дж|Вт|м|с|ф|А)(?=\b)))

所做的所有更改是我从此更改了表达式的结构:

(?<=(1))(2)(?=(3))

对此:

(1)\K(2)(?=(3))
威克多·斯特里比尤(WiktorStribiżew)

关键是Sublime Text regex由Boost regex库提供支持,该库不支持无限宽的后向查找。

为了缓解这种情况,Boost支持\K像正向后方那样工作运算符。一旦\K匹配了左侧的模式\K就将丢弃,开始将新匹配的文本写入一个清晰的缓冲区。

使用该PATTERN_1\KPATTERN_2(?=PATTERN_3)方案替换为空字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Sublime Text 3使用的正则表达式类型?

来自分类Dev

使用Sublime Text 3替换正则表达式

来自分类Dev

如何使用正则表达式和Sublime Text替换制表符包裹的文本?

来自分类Dev

如何在Sublime Text 2中使用正则表达式替换括号之间的大写字母?

来自分类Dev

PHP Sublime Text 使用查找和替换正则表达式

来自分类Dev

使用Sublime Text查找在搜索模式中突出显示正则表达式组

来自分类Dev

使用Sublime Text 3编辑器打开的txt文件中使用正则表达式查找重复项

来自分类Dev

Sublime Text代码段中句点前的变量名称的正则表达式

来自分类Dev

Sublime Text 3 API插件,用于正则表达式替换文本

来自分类Dev

在Sublime Text 3代码段中应用2正则表达式操作

来自分类Dev

Sublime Text 3:正则表达式替换在代码段中的引号上失败

来自分类Dev

Sublime Text 3 通配符中的正则表达式为大写

来自分类Dev

Sublime Text正则表达式(选择特定字符下方的行)

来自分类Dev

正则表达式从Sublime Text 2中的CSS文件中删除所有注释

来自分类Dev

Sublime Text 3正则表达式,找到多个-替换为一个

来自分类Dev

Sublime Text中的非捕获组正则表达式不起作用

来自分类Dev

在Sublime Text 2中替换正则表达式占位符,后跟数字

来自分类Dev

在语法定义中代表Sublime Text正则表达式中的“小于”符号

来自分类Dev

在Sublime Text中跨多行匹配的正则表达式

来自分类Dev

Sublime Text中的非捕获组正则表达式不起作用

来自分类Dev

在Sublime Text 2中查找并替换为正则表达式

来自分类Dev

在Sublime Text中,使用正则表达式,如何查找双破折号和单破折号之间的所有文本,不包括破折号?

来自分类Dev

Sublime Text正则表达式来查找和替换两个xml或html标签之间的空格?

来自分类Dev

在 Sublime Text 中使用正则表达式将所有 ID 替换为具有特定名称的类

来自分类Dev

Sublime Text 3通过文件名的正则表达式设置语法突出显示

来自分类Dev

使用正则表达式将(,,, text ,, 4,text,3 ,,)转换为(text,4,text,3)

来自分类Dev

Sublime Text正则表达式或通配符

来自分类Dev

Sublime Text正则表达式隔离achor标签

来自分类Dev

如何使用正则表达式从数组中选择?

Related 相关文章

  1. 1

    Sublime Text 3使用的正则表达式类型?

  2. 2

    使用Sublime Text 3替换正则表达式

  3. 3

    如何使用正则表达式和Sublime Text替换制表符包裹的文本?

  4. 4

    如何在Sublime Text 2中使用正则表达式替换括号之间的大写字母?

  5. 5

    PHP Sublime Text 使用查找和替换正则表达式

  6. 6

    使用Sublime Text查找在搜索模式中突出显示正则表达式组

  7. 7

    使用Sublime Text 3编辑器打开的txt文件中使用正则表达式查找重复项

  8. 8

    Sublime Text代码段中句点前的变量名称的正则表达式

  9. 9

    Sublime Text 3 API插件,用于正则表达式替换文本

  10. 10

    在Sublime Text 3代码段中应用2正则表达式操作

  11. 11

    Sublime Text 3:正则表达式替换在代码段中的引号上失败

  12. 12

    Sublime Text 3 通配符中的正则表达式为大写

  13. 13

    Sublime Text正则表达式(选择特定字符下方的行)

  14. 14

    正则表达式从Sublime Text 2中的CSS文件中删除所有注释

  15. 15

    Sublime Text 3正则表达式,找到多个-替换为一个

  16. 16

    Sublime Text中的非捕获组正则表达式不起作用

  17. 17

    在Sublime Text 2中替换正则表达式占位符,后跟数字

  18. 18

    在语法定义中代表Sublime Text正则表达式中的“小于”符号

  19. 19

    在Sublime Text中跨多行匹配的正则表达式

  20. 20

    Sublime Text中的非捕获组正则表达式不起作用

  21. 21

    在Sublime Text 2中查找并替换为正则表达式

  22. 22

    在Sublime Text中,使用正则表达式,如何查找双破折号和单破折号之间的所有文本,不包括破折号?

  23. 23

    Sublime Text正则表达式来查找和替换两个xml或html标签之间的空格?

  24. 24

    在 Sublime Text 中使用正则表达式将所有 ID 替换为具有特定名称的类

  25. 25

    Sublime Text 3通过文件名的正则表达式设置语法突出显示

  26. 26

    使用正则表达式将(,,, text ,, 4,text,3 ,,)转换为(text,4,text,3)

  27. 27

    Sublime Text正则表达式或通配符

  28. 28

    Sublime Text正则表达式隔离achor标签

  29. 29

    如何使用正则表达式从数组中选择?

热门标签

归档