python - 可选忽略字符串中的空格(来自字符集)正则表达式 Python

标签 python regex

假设我有一个字符串:

original_string = "(white || black) && (blue || yellow)"

然后我用文本“替换”替换每个单词,方法是:

new_string = re.sub(r'[a-zA-Z0-9_]+', "replace", original_string) 

所以我回来了:

"(replace || replace) && (replace || replace)"

这很好用。但我也希望得到相同的结果,即使 original_string 在单词之间包含空格(或者即使没有)。

例如:

original_string = (light pink || pink) && (very dark brown || blue)

我还是想回去:

"(replace || replace) && (replace || replace)"

我看到其他人问过这个问题,但是当我尝试这些解决方案时,我没有得到正确的替换(通常在维护括号方面存在一些问题)。我已经尝试过的一些事情是:

 new_string = re.sub(r'[? \w+ ?]+', "replace", original_string)
 new_string = re.sub(r'[\w+( \w+)*$]+', "replace", original_string)

但是这些都没有给出预期的结果。有什么建议吗?

最佳答案

尝试以下操作:

new_string = re.sub(r'\w[\w\t ]*\w|\w', "replace", original_string)

\w 等价于[a-zA-Z0-9_],所以[\w\t ] 会匹配单词字符、制表符和空格。所以这个正则表达式的意思是“匹配一个单词字符,后跟任意数量的单词字符或空白字符,然后是一个单词字符,或者匹配一个单词字符”。这样您将匹配单词之间的空格而不是单词前后的空格。

关于python - 可选忽略字符串中的空格(来自字符集)正则表达式 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17113062/

相关文章:

java - 摩擦正则表达式 : matching a char except when after by another char

php - Preg 匹配撇号

Python CSV 将一列中的数据转置为行

python - 直接处理多项式而不是二进制数时,是否有更好的方法在有限域中进行取模?

python - 编码斯洛伐克语字母,如 : á š Č é

regex - Google 查询修剪字符串数据

regex - gedit 3 正则表达式插件

arrays - Brain Bender ...数组公式不使用 FILTER 函数填充单元格

python - 用 pandas 连接字符串中每个单词的前 N ​​个字符

python - Cython 中的 64 位整数