正则表达式在不带字符串的情况下匹配字符

wfgeo

我试图在标点符号之后匹配空格,以便可以拆分大量的文本集,但是我看到一些常见的带有边,标题和缩写的常见情况:

I am from New York, N.Y. and I would like to say hello! How are you today? I am well. I owe you $6. 00 because you bought me a No. 3 burger. -Sgt. Smith

我正在将其与re.splitPython 3中函数一起使用,我想得到这个:

["I am from New York, N.Y. and I would like to say hello!",
"How are you today?",
"I am well.",
"I owe you $6. 00 because you bought me a No. 3 burger."
"-Sgt. Smith"]

这是我的正则表达式:

(?<=[\.\?\!])(?<=[^A-Z].)(?<=[^0-9].)(?<=[^N]..)(?<=[^o].)

我决定尝试No.用后两个条件修复第一个。但这取决于匹配No独立,我认为这将在其他地方解决误报问题。我无法弄清楚如何使它No成为句号后面的字符串然后,我将对遇到的Sgt.任何其他“问题”字符串使用类似的方法

我正在尝试使用类似的东西:

(?<=[\.\?\!])(?<=[^A-Z].)(?<=[^0-9].)^(?<=^No$)

但是之后它什么也没捕获。如何获取它以排除某些我希望在其中包含句点的字符串而不捕获它们?

这是我的情况的正则表达式:https ://regexr.com/4sgcb

安德烈·凯斯利(Andrej Kesely)

仅使用一个正则表达式会很棘手-如评论中所述,有很多极端情况。

我本人将通过三个步骤来做到这一点:

  1. 替换应留有特殊字符(re.sub)的空格
  2. 分割文字(re.split
  3. 用空格替换特殊字符

例如:

import re

zero_width_space = '\u200B'

s = 'I am from New York, N.Y. and I would like to say hello! How are you today? I am well. I owe you $6. 00 because you bought me a No. 3 burger. -Sgt. Smith'

s = re.sub(r'(?<=\.)\s+(?=[\da-z])|(?<=,)\s+|(?<=Sgt\.)\s+', zero_width_space, s)
s = re.split(r'(?<=[.?!])\s+', s)

from pprint import pprint
pprint([line.replace(zero_width_space, ' ') for line in s])

印刷品:

['I am from New York, N.Y. and I would like to say hello!',
 'How are you today?',
 'I am well.',
 'I owe you $6. 00 because you bought me a No. 3 burger.',
 '-Sgt. Smith']

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

匹配不带正则表达式的字符串

来自分类Dev

Perl正则表达式:如何在不带\“的情况下将字符串从”转换为“?

来自分类Dev

在不删除任何字符的情况下,在正则表达式匹配项处拆分字符串

来自分类Dev

C#正则表达式-仅在子字符串存在的情况下才匹配?

来自分类Dev

如何在不使用正则表达式的情况下拆分字符串

来自分类Dev

正则表达式匹配带特殊字符或不带重音字符的字符串?

来自分类Dev

如何使用正则表达式匹配不带双字符的字符串

来自分类Dev

如何使用正则表达式匹配不带双字符的字符串

来自分类Dev

拆分字符串,不带正则表达式

来自分类Dev

正则表达式-匹配字符串时不带前导和尾随空格

来自分类Dev

正则表达式模式以匹配不带冒号的字符串

来自分类Dev

正则表达式以匹配变量或字符串的值(带或不带引号)

来自分类Dev

javascript正则表达式以匹配带数字和不带数字的字符串

来自分类Dev

正则表达式匹配带或不带捕获组的字符串

来自分类Dev

正则表达式模式以匹配不带冒号的字符串

来自分类Dev

在无法声明字符串的情况下,如何在 java 脚本中获取正则表达式匹配的第 1 组的结果?

来自分类Dev

正则表达式:仅在不跟重复字符的情况下匹配

来自分类Dev

正则表达式 - 在不使用 $ 符号的情况下匹配末尾的字符

来自分类Dev

如何在不使用正则表达式的情况下检查子字符串是否重复?

来自分类Dev

在这种情况下,是否可以使用正则表达式查找特殊的子字符串?

来自分类Dev

正则表达式指南仅在特殊情况下从字符串中删除数字

来自分类Dev

使用正则表达式替换所有情况下的字符串

来自分类Dev

如何在不使用正则表达式的情况下使用javascript搜索数组中的字符串

来自分类Dev

在不使用正则表达式的情况下拾取特定的字符串模式

来自分类Dev

在没有正则表达式的情况下找到一个浮点形式的字符串python

来自分类Dev

正则表达式可以匹配任何带引号的字符串或特定的不带引号的字符串

来自分类Dev

使用正则表达式匹配字符串?

来自分类Dev

Java正则表达式匹配字符串

来自分类Dev

返回匹配正则表达式的字符串

Related 相关文章

  1. 1

    匹配不带正则表达式的字符串

  2. 2

    Perl正则表达式:如何在不带\“的情况下将字符串从”转换为“?

  3. 3

    在不删除任何字符的情况下,在正则表达式匹配项处拆分字符串

  4. 4

    C#正则表达式-仅在子字符串存在的情况下才匹配?

  5. 5

    如何在不使用正则表达式的情况下拆分字符串

  6. 6

    正则表达式匹配带特殊字符或不带重音字符的字符串?

  7. 7

    如何使用正则表达式匹配不带双字符的字符串

  8. 8

    如何使用正则表达式匹配不带双字符的字符串

  9. 9

    拆分字符串,不带正则表达式

  10. 10

    正则表达式-匹配字符串时不带前导和尾随空格

  11. 11

    正则表达式模式以匹配不带冒号的字符串

  12. 12

    正则表达式以匹配变量或字符串的值(带或不带引号)

  13. 13

    javascript正则表达式以匹配带数字和不带数字的字符串

  14. 14

    正则表达式匹配带或不带捕获组的字符串

  15. 15

    正则表达式模式以匹配不带冒号的字符串

  16. 16

    在无法声明字符串的情况下,如何在 java 脚本中获取正则表达式匹配的第 1 组的结果?

  17. 17

    正则表达式:仅在不跟重复字符的情况下匹配

  18. 18

    正则表达式 - 在不使用 $ 符号的情况下匹配末尾的字符

  19. 19

    如何在不使用正则表达式的情况下检查子字符串是否重复?

  20. 20

    在这种情况下,是否可以使用正则表达式查找特殊的子字符串?

  21. 21

    正则表达式指南仅在特殊情况下从字符串中删除数字

  22. 22

    使用正则表达式替换所有情况下的字符串

  23. 23

    如何在不使用正则表达式的情况下使用javascript搜索数组中的字符串

  24. 24

    在不使用正则表达式的情况下拾取特定的字符串模式

  25. 25

    在没有正则表达式的情况下找到一个浮点形式的字符串python

  26. 26

    正则表达式可以匹配任何带引号的字符串或特定的不带引号的字符串

  27. 27

    使用正则表达式匹配字符串?

  28. 28

    Java正则表达式匹配字符串

  29. 29

    返回匹配正则表达式的字符串

热门标签

归档