当前位置: 首页 > 面试题库 >

Python正则表达式,删除除Unicode字符串的连字符以外的所有标点符号

司徒元明
2023-03-14
问题内容

我有以下代码可用于删除正则表达式字符串中的所有标点符号:

import regex as re    
re.sub(ur"\p{P}+", "", txt)

我如何更改它以允许连字符?如果您能解释您是如何做到的,那将很棒。我了解在这里,如果我错了,请纠正我,在标点符号之后加上P。


问题答案:
[^\P{P}-]+

\P是-的补充\p-不是标点符号。所以这比赛什么,是 不是 (没有标点符号或破折号) -导致除破折号所有标点符号。

范例:http://www.rubular.com/r/JsdNM3nFJ3

如果您希望采用非卷积方式,则可以选择\p{P}(?<!-):匹配所有标点,然后检查它是否不是破折号(使用负向后看)。
工作示例:http :
//www.rubular.com/r/5G62iSYTdk



 类似资料:
  • 问题内容: 我有两个弦 和。现在,我想对这些字符串应用一个正则表达式,以过滤掉除数字以外的所有内容,以便获得像和这样的整数。 我该怎么做? 问题答案: 您可以使用。它会考虑您所拥有的一切之外的一切。 因此,如果要过滤除y以外的所有内容。在你的情况下,你会做类似的事情 其中string是保存实际文本的变量!

  • 我正在尝试制作一个正则表达式,它可以删除所有标点和空格,但保留小数点和连字号。到目前为止,我已经: 它删除所有点,包括小数点。 我如何使它区分点周围的字符或数字? 预期产出:

  • 我正在尝试用Java编写一个正则表达式,它从段落中删除所有非字母数字字符,但单词之间的空格除外。 如何修复此错误?

  • 我试图找出从字符串中删除所有标点符号和空格的正确方法,但保留撇号不变,例如: 不会留下来,但“欲望”会变成“欲望”。 我试过使用

  • 问题内容: 我需要使用正则表达式在单词的 开头 和 结尾 处删除标点符号。似乎正则表达式将是最好的选择。我不想从“ you’re”之类的词中删除标点符号,这就是为什么我不使用.replace()的原因。 问题答案: 您不需要正则表达式即可执行此任务。使用有:

  • 问题内容: 我有这个作业问题,需要使用正则表达式删除字符串中的所有其他字符。 在一部分中,我必须删除索引1,3,5,…处的字符,具体操作如下: 这是我想要的打印。本质上,我一次匹配两个字符,然后替换为第一个字符。我使用组捕获来做到这一点。 问题是,我在作业的第二部分遇到麻烦,我需要删除索引0、2、4,…处的字符。 我已经完成以下工作: 此打印,但正确答案必须是。仅当输入字符串的长度为奇数时,我的正