与正则表达式匹配字符串

时间:2014-03-15 06:31:06

标签: regex string matching

我正在创建一个用于编辑Python脚本的小文本编辑器,而我遇到了一对regex expressions的问题。

对于字符串,我有:

\".*\"

这有几个问题...首先,它只会匹配字符串,如果它同时有一个起始引号和一个结束引号。所以,假设我开始输入一些代码,当我输入时:

x = "Hello World

regex不会检测到字符串,因为它没有结尾引号。下一个问题是它不适用于反斜杠。所以,如果我输入:

x = "\"I'm leaving in an hour\""

regex与文字不匹配(我将在一小时内离开),因为它是由引号引起的。你知道我在说什么吗?

我需要的下一个regex有点简单,我只是不知道如何写它。

我需要在“def”之类的特定单词之后匹配文本,并以不是字母,数字或下划线的字符结束。如果我有:

def helloWorld(self)

我希望匹配'helloWorld'并将其他所有内容保留。

所以,如果你能帮助我解决这些问题,那就太好了。

(此处的一些示例源代码http://newspawn.org/texteditor.py) 需要Python 3.3和PyQt5

1 个答案:

答案 0 :(得分:0)

对于你的第二个,你需要一个外观:

(?<=def )\w*

对于第一个(转义字符串)的b部分,一种简单的方法是首先删除所有转义引号并将结果存储到临时变量中,然后匹配该字符串。