[英]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.