使用正则表达式将客户评论中的点替换为逗号

玛丽

我需要写一个正则表达式来替换'.'','在一些患者对毒品的意见。他们在提到副作用后应该使用逗号,但是其中一些使用点。例如:

text = "the drug side-effects are: night mare. nausea. night sweat. bad dream. dizziness. severe headache.  I suffered. she suffered. she told I should change it."

我编写了一个正则表达式代码来检测一个单词(例如,头痛)或两个单词(例如,噩梦),并用两个点包围:

检测被两个点包围的单词:

text=  re.sub (r'(\.)(\s*\w+\s*\.)',r',\2 ', text )

检测被两个点包围的两个词:

text =  re.sub (r'(\.)(\s*\w+\s\w+\s*\.)',r',\2 ', text11 )

这是输出:

the drug side-effects are: night mare, nausea,  night sweat.  bad dream, dizziness,  severe headache.   I suffered, she suffered.  she told I should change it.

但是应该是:

the drug side-effects are: night mare, nausea,  night sweat,  bad dream, dizziness,  severe headache.   I suffered. she suffered.  she told I should change it.

我的代码并没有取代dotnight sweat to ','我另外,if a sentence starts with a subject pronoun (such as I and she) I do not want to change dot to comma after it, even if it has two words (such as, I suffered)我不知道如何将此条件添加到我的代码中。

有什么建议吗?谢谢 !

塞巴斯蒂安·普罗斯克(Sebastian Proske)

您可以使用以下模式:

\.(\s*(?!(?:i|she)\b)\w+(?:\s+\w+)?\s*)(?=[^\w\s]|$)

这会匹配一个点,然后捕获一个或两个单词,其中第一个不是您提到的代词(您很可能需要扩展该列表)。其后必须是既不是单词字符也不是空格(例如. ! : ,)或字符串结尾的字符。

然后,您将不得不替换为 ,\1

在python中

import re
text = "the drug side-effects are: night mare. nausea. night sweat. bad dream. dizziness. severe headache.  I suffered. she suffered. she told I should change it."
text = re.sub(r'\.(\s*(?!(?:i|she)\b)\w+(?:\s+\w+)?\s*)(?=[^\w\s]|$)', r',\1', text, flags=re.I)
print(text)

产出

the drug side-effects are: night mare, nausea, night sweat, bad dream, dizziness, severe headache.  I suffered. she suffered. she told I should change it.

这可能不是绝对的故障保护,并且对于某些边缘情况,您可能必须扩展模式。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式用于用逗号替换时间到Python中的点

来自分类Dev

Ruby =使用正则表达式将字符串中的行替换为空格

来自分类Dev

如何使用正则表达式将多个序列替换为列表中的值?

来自分类Dev

在正则表达式中检测点或逗号

来自分类Dev

正则表达式将空格转换为逗号

来自分类Dev

使用正则表达式替换括号内的逗号

来自分类Dev

使用正则表达式在正则表达式中查找正则表达式点

来自分类Dev

使用正则表达式在正则表达式中查找正则表达式点

来自分类Dev

使用正则表达式替换为smarty?

来自分类Dev

如何使用正则表达式将变量替换为计算字符串中的值?

来自分类Dev

使用正则表达式将字符串中的数字替换为四舍五入的数字

来自分类Dev

在java中使用正则表达式将字符串中的特殊字符}}替换为“”

来自分类Dev

使用正则表达式根据上下文替换字符串中的点

来自分类Dev

如何在 Python 中使用正则表达式替换缩写中的点?

来自分类Dev

如何用SQL中的正则表达式将字符串替换为小写?

来自分类Dev

如何使用R的正则表达式将大括号替换为大括号?

来自分类Dev

使用正则表达式将S00替换为SOO

来自分类Dev

使用Python正则表达式将span标签替换为anchor标签

来自分类Dev

想要使用正则表达式将字符串替换为数字

来自分类Dev

如何使用正则表达式将组值替换为空字符串

来自分类Dev

如何使用正则表达式替换将object:method(...)转换为method(object,...)

来自分类Dev

在R中使用正则表达式将数字替换为空白

来自分类Dev

使用正则表达式将字符串替换为字符串

来自分类Dev

使用JavaScript正则表达式将单词替换为字母

来自分类Dev

使用正则表达式将锚链接替换为特定内容

来自分类Dev

使用正则表达式将img bbcode替换为可选的宽度和高度?

来自分类Dev

使用正则表达式将换行符替换为word?

来自分类Dev

CSV使用正则表达式将引号替换为其HTML代码

来自分类Dev

使用groovy正则表达式将'%@'替换为'%n $ s'

Related 相关文章

  1. 1

    正则表达式用于用逗号替换时间到Python中的点

  2. 2

    Ruby =使用正则表达式将字符串中的行替换为空格

  3. 3

    如何使用正则表达式将多个序列替换为列表中的值?

  4. 4

    在正则表达式中检测点或逗号

  5. 5

    正则表达式将空格转换为逗号

  6. 6

    使用正则表达式替换括号内的逗号

  7. 7

    使用正则表达式在正则表达式中查找正则表达式点

  8. 8

    使用正则表达式在正则表达式中查找正则表达式点

  9. 9

    使用正则表达式替换为smarty?

  10. 10

    如何使用正则表达式将变量替换为计算字符串中的值?

  11. 11

    使用正则表达式将字符串中的数字替换为四舍五入的数字

  12. 12

    在java中使用正则表达式将字符串中的特殊字符}}替换为“”

  13. 13

    使用正则表达式根据上下文替换字符串中的点

  14. 14

    如何在 Python 中使用正则表达式替换缩写中的点?

  15. 15

    如何用SQL中的正则表达式将字符串替换为小写?

  16. 16

    如何使用R的正则表达式将大括号替换为大括号?

  17. 17

    使用正则表达式将S00替换为SOO

  18. 18

    使用Python正则表达式将span标签替换为anchor标签

  19. 19

    想要使用正则表达式将字符串替换为数字

  20. 20

    如何使用正则表达式将组值替换为空字符串

  21. 21

    如何使用正则表达式替换将object:method(...)转换为method(object,...)

  22. 22

    在R中使用正则表达式将数字替换为空白

  23. 23

    使用正则表达式将字符串替换为字符串

  24. 24

    使用JavaScript正则表达式将单词替换为字母

  25. 25

    使用正则表达式将锚链接替换为特定内容

  26. 26

    使用正则表达式将img bbcode替换为可选的宽度和高度?

  27. 27

    使用正则表达式将换行符替换为word?

  28. 28

    CSV使用正则表达式将引号替换为其HTML代码

  29. 29

    使用groovy正则表达式将'%@'替换为'%n $ s'

热门标签

归档