繁体   English   中英

Python使用re匹配特定模式下的字符串

[英]Python using re to match string in a specific pattern

我正在尝试使用python re将字符串与特定模式匹配。 我遇到的问题是,我有这个预期的句子:

"It is X. not X`

X可以是任何东西; 一个单词或一堆单词或数字或数字。

我建立的模式是:

It is \w+. not \w+

只是使用

string.replace("X", "\w+")

如果X是一个单词或一堆单词或int,则有效,但对于数字则无效。 如何建立我的模式以匹配该模式中的所有内容?

. 是正则表达式中的特殊字符,它将与任何字符匹配。 因此, .+将匹配一个或多个字符。

r"It is .+\. not .+"

不是说句号是逃脱\\. ,这是因为在这种情况下,您要匹配实际时间段。

例如,因为.+在某些情况下不起作用

这是报价。 不是双引号

它是一只狗。 不是猫

我会改用这个:

(?<=It is ).+(?=\\.)|(?<=not ).+$

说明

(?<=It is ).+(?=\\.)任何以It is开头并后接点的连续字符

| 要么

(?<=not ).*$任何连续的字符,其前面是not ,然后是行尾

(?<=It is ).*(?=\\.)|(?<=not ).*$

演示

我已经弄清楚,可以使用str.replace("X", "(\\w+|\\d+\\.\\d+)")来解决问题。 希望可以帮助其他有同样问题的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM