如何在例外情况下应用re.sub()

泽维尔·维拉·阿吉拉尔

我正在尝试编写词汇游戏。

我正在使用正则表达式来隐藏我的单词,我不得不猜测。我对正则表达式使用的语法不满意-除了简单的示例,我非常困惑。

以动词为例

'to crank (sth) up'

我想将其转换为:

to   _ _ _ _ _   (sth)  _ _ 

该程序将从词汇表CSV文件中获取。我的约定是添加(sth)(smb)用于及物动词。我不想在方括号之间隐藏这些位。同样,我也不想隐藏to表示不定式的。

到目前为止,我正在应用的转换是:

chosen_word = "to crank (sth) up"

# To make the space between words double for better legibility
hidden_word = re.sub("\s", "  ", chosen_word)

# To hide the letters of the word 
hidden_word = re.sub("[a-z]", "_ ", hidden_word)

但这导致:

_ _    _ _ _ _ _   ( _ _ _ )  _ _

如何编码re.sub()_ 模式to sth之外所有字母字符转换为的方法smb

维克多·史翠比维

您可以捕获排除项,然后使用动态替换模式:

hidden_word = re.sub(r"(\bto\b|\(s(?:th|b)\))|[a-z]", lambda x: x.group(1) or "_ ", hidden_word)

请参阅Python演示正则表达式详细信息

  • (\bto\b|\(s(?:th|b)\))-第1组:要么整个单词to(sth)(sb)
  • | - 要么
  • [a-z] -小写ASCII字母
  • lambda x: x.group(1) or "_ " -匹配项将替换为第1组的值(如果已匹配),否则将替换为下划线加空格。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

例外情况下正确工作

来自分类Dev

CQRS-域例外与例外情况下的事件

来自分类Dev

防止在例外情况下显示DLL源

来自分类Dev

如何记录例外情况?

来自分类Dev

python re sub vs findall

来自分类Dev

Python:re.sub不变

来自分类Dev

带“。*”的“ re.sub”方法

来自分类Dev

关于python的re.sub

来自分类Dev

Python re.sub 问题

来自分类Dev

如何在不复制代码的情况下将相同的例外应用于多个功能?

来自分类Dev

如何在re.sub中索引组元素?

来自分类Dev

python re.sub如何使用

来自分类Dev

python re.sub如何使用

来自分类Dev

Ruby:存在“ \\'”的情况下String#sub的无法解释的行为

来自分类Dev

在这种情况下,pub / sub是一个不错的选择吗?

来自分类Dev

有没有一种方法可以在不使用组的情况下引用re.sub中的整个匹配表达式?

来自分类Dev

sub sub命令失败时如何终止shell?

来自分类Dev

如何忽略xml文件中的<sub> </ sub>标签?请看例子

来自分类Dev

Sub如何更新其参数?

来自分类Dev

如何使用`sub`更改值

来自分类Dev

如何提高redis sub的性能?

来自分类Dev

在例外情况下,我想调试而不会展开任何堆栈

来自分类Dev

带有日语字符的re.sub

来自分类Dev

re.sub用逗号替换空格

来自分类Dev

Python Lambda if语句re.sub

来自分类Dev

使用re.sub的更好方法

来自分类Dev

使用re.sub并出现错误

来自分类Dev

re.sub输出格式错误

来自分类Dev

Python 2 re.sub问题