- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要替换某些字符串上两个或多个重复的标点符号。
"asdasdasd - adasdasd asda ------- asda wadsda +-----+ wwww qqqqqq aaaaa"
到
"asdasdasd - adasdasd asda - asda wadsda +- + wwww qqqqqq aaaaa"
我使用 regex101 应用程序创建了这个应用程序:
https://regex101.com/r/vdR5T1/1/
但是当我尝试使用 python 时:
import re
texto = "asdasdasd - adasdasd asda ------- asda wadsda +-----+ wwww qqqqqq aaaaa"
rx = re.compile(r'([[:punct:]])\1{2,}')
texto = rx.sub(' ', texto)
print(texto)
我遇到了这个错误:
FutureWarning: Possible nested set at position 2
rx = re.compile(r'([[:punct:]])\1{2,}')
如何使用 python 运行这个(或类似的)正则表达式?
最佳答案
Python re
不识别 POSIX 括号表达式,因此 [[:punct:]]
看起来像一个嵌套的字符类(因此出现警告消息)。您可以将其替换为包含所有标点符号的字符类,例如[!-/:-@[-`{-~]
。请注意,您的正则表达式需要 3 个或更多相同字符(初始捕获组加上 2 个或更多重复),您只需要 +
而不是 {2,}
并且您需要替换为 \1
以在输出中获取重复字符一次:
import re
texto = "asdasdasd - adasdasd asda ------- asda wadsda +-----+ wwww -- qqqqqq aaaaa"
rx = re.compile(r'([!-/:-@[-`{-~])\1+')
texto = rx.sub(r'\1 ', texto)
print(texto)
输出:
asdasdasd - adasdasd asda - asda wadsda +- + wwww - qqqqqq aaaaa
关于python - 如何替换两个或多个重复的 :punct: using re in python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65136664/
int main() {scanf("%d",&n); float *puncte; puncte=(float*)malloc(n*sizeof(float)); printf("\nSIZEOF
我有一些字符串。它们包含一些数据。 示例:“Alberto Macano。这是描述。”还有另一个示例:“Pablo Don Carlo。此处有说明。” 我需要什么:一种将名称与描述分开的方法。例如,在
这个问题在这里已经有了答案: I want to match all punctuation in my regexp except apostrophes. How do i do that in
如果我想将扫描仪的定界符设置为 scanner.useDelimiter("\\p{Punct}"); 但不希望引号包含在该列表中,是否有一个简单的方法来排除它? 我试着做 s.useDelimite
我需要替换某些字符串上两个或多个重复的标点符号。 "asdasdasd - adasdasd asda ------- asda wadsda +-----+ wwww qqqqqq aaaaa" 到
已阅读 Remove all punctuation except apostrophes in R 中的答案发布,我尝试使用 '[[:space:]]|[^\/[:^punct:]]' 在 REGE
我有以下正则表达式,一个带有 \p{Punct} ,另一个没有 片段(1): add(\s[\w\p{Punct}]+)+(\s#\w+)* 片段(2): add(\s[\w]+)+(\s#\w+)*
我正在使用“punct”函数来替换 a 中的特殊字符字符串 ex: ' REPLACE (REGEXP_REPLACE (colum1, '[[:punct:]]' ), ' ', '')) AS O
我有以下命令: cat original.txt | tr [:upper:] [:lower:] | tr -d [:digit:] | tr -d [:punct:] > preproces.tx
我想知道是否有一种简单的方法可以在使用 tr 时向 [[:punct:]] 括号表达式添加异常。效用: cat *.txt | tr '[[:punct:]]' '\012' 例如:如果标点字符是-
Ruby 的标点字符 字符类,即[:punct:]、\p{Punct} 或\p {P} 似乎根据我使用的 Ruby 版本匹配不同的字符。 这是一个小例子:(很抱歉弄乱了 SO 的语法高亮显示) # p
给定的 test<-"Low-Decarie, Etienne" 我想用空格替换所有标点符号 gsub(pattern="[:punct:]", x=test, replacement=" ") 但这
给定一个以符号开头的 String:{" 并以:"} 结尾。行与行之间还有其他标点符号,例如:、' 或 ""等。如何使用 java 正则表达式实用程序来了解给定的字符串是否以:{" 开头。我正在尝试返
这是我的正则表达式 - “[\\w\\d\\p{Punct}]+” 在我的应用程序中,\\p{Punct} 的行为非常奇怪。根据文档(https://docs.oracle.com/javase/7/
ruby /[[:punct:]]/应该匹配所有“标点字符”。根据Wikipedia , 这意味着 /[\]\[!"#$%&'()*+,./:;?@\^_`{|}~-]/根据 POSIX 标准。 匹配
这个问题在这里已经有了答案: R/regex with stringi/ICU: why is a '+' considered a non-[:punct:] character? (2 个回答)
有没有一种方法可以在 java 的正则表达式中使用 \p{Punct},但没有 ( 和 ) 这两个字符? 最佳答案 您应该能够使用: [\p{Punct}&&[^()]] 这句话的意思是: The p
String dirtyStr = "Who. do yo$u th,ink you are?!"; System.out.println(scrub(dirtyStr));
我写了一个小测试来演示 @Test public void missingPunctuationRegex() { Pattern punct = Pattern.compile("[\\p{
Haxe 的手册没有正则表达式符号的详细信息。我找不到哪个符号映射到 Java 的 \p{Punct}。 Haxe有没有类似的东西? 最佳答案 根据documentation ,标点符号 unicod
我是一名优秀的程序员,十分优秀!