有一个问题困扰了我很长时间。
在Python中,regex总是匹配内容中最长的字符串。
例如,内容如下:
<test> A <br> B <br>
如果我使用正则表达式re.compile('/<test/>(\w\s)+/<br/>'),python匹配最长的字符串,这意味着<test> A <br> B <br>
如何匹配最短的字符串<test> A <br>?
感谢您的阅读和回复。
在我熟悉的所有语言的正则表达式引擎中,.*表示法表示匹配零或多个字符。考虑以下Javascript代码:
var s = "baaabcccb";
var pattern = new RegExp("b.*b");
var match = pattern.exec(s);
if (match) alert(match);
这输出baaabcccb
Python也会发生同样的情况:
>>> import re
>>> s = "baaabcccb"
>>> m = re.search("
我试图使用Python中的正则表达式从字符串中提取数据。
该字符串是“您的第一次订单15%的折扣”。我想从这个字符串中提取15。为此,我在做-
import re
pattern = r'.*(\d+)\s*\%.*off.*'
string = '15% Off your first order'
m = re.match(pattern, string, re.I)
print m.group(1)
但是,这将返回5,而不是15。我遗漏了什么?
我想在下面的c.[1210-12t[7];1408a>g]文本中用regex匹配python3:
It was frequently associated with the c.[1210-12t[7];1408a>g] (t7-p.val470) allele and this cftr genetic background could not explain the putative pathogenicity of this variant.
但根据场景,我只知道所需单词的前缀c.[1210-12t[7]。因此,我尝试了regex模式c\.\[1210-12t\[7\].*\
我们有几个文本(字符串)包含描述(不是生成的语音的一部分),比如不可闻和笑声。我们想从字符串中删除这些元素。它们总是具有相同的结构,并且是用...编写的。示例:
text="I think I could pretty much say, Mike, most of them have become stars, if not all. Because you won. Winning is a wonderful thing. [Laughter] So I thought what I'd do is go around the room"
这就是我们到目前为止所尝
在下面的示例中,我尝试创建一个正则表达式来查找一行中的最后一组1位或多位连续数字。
据我所知,在python3中,re.search()从左到右遍历搜索字符串。
这是否解释了下面示例中的行为?具体来说,这就是“.*”的原因吗?在捕获块(锚定到前面时,如前两个示例)之前需要,以便捕获块捕获这两个数字,而'?‘当正则表达式锚定到行尾时是可选的(如最后两个示例所示?)
Python 3.1.2 (release31-maint, Sep 17 2010, 20:27:33)
>>> import re
>>> a = "hi there in t
我感兴趣的是删除Python字符串中模式的所有匹配项,其中的模式看起来像"start-string end-string,blah,blah“。这是一个我希望能够处理的一般性问题。这是与How can I remove a portion of text from a string whenever it starts with &*( and ends with )(*相同的问题,但在Python语言中,而不是在Java中。 我该如何用Python解决同样的问题呢? 假设字符串是这样的, 'Bla bla bla <mark asd asd asd />
我有以下字符串:
a = '''"The cat is running to the door, he does not look hungry anymore".
Said my mom, whispering.'''
注意换行。在python中,字符串为:'The cat is running to the door, he does not look hungry anymore".\n \n Said my mom, whispering.'
我有一个正则表达式:pattern = u
我有regex,它可以搜索html <h>家族标记,但是如果<h>中还有其他标记,它就不能工作。见下面的例子。
<h([\d]).*>\s*[\d]*\s?[.]?\s?([^<]+)<\/h([\d])>
It works
<h2 style="margin-top:1em;">What is Python?</h2>
它不工作
<h2 style="margin-top:1em;">Python Jobs<span class="blink">
所以我有这个字符串:
sockcooker!~shaz@Rizon-AC7BDF2F.dynamic.dsl.as9105.com !~shaz@ PRIVMSG #Rizon :ohai. New here. registered 10 mins ago, have not got an email. Addy is correct. My email is working fine.
我想让正则表达式找到!~shaz@所以我使用这个r"!.+@“,但是它找到了这个
!~shaz@Rizon-AC7BDF2F.dynamic.dsl.as9105.com !~shaz@
在我的记忆
例如,输入字符串:
In North Dighton, there's a Flash Flood Watch in effect until Wednesday, July 12, 9:00 PM.
我想提取出以下字符串
North Dighton
所以我编写了这样的python代码:
found_group = re.search('(.*)in (.*?),(.*)', "In North Dighton, there's a Flash Flood Watch in effect until Wednesday, July 12, 9:00 PM
在python的re.findall中试验正则表达式时,我遇到了这个问题:
line = "Lorem ipsum HELLO dolor sit amet, GOODBYE consectetuer adipiscing elit, HELLO sed diam nonummy nibh GOODBYE all"
X = re.findall("(HELLO)(.*)(GOODBYE)", line, flags=re.MULTILINE)
print (y)
这将输出:
('HELLO', ' dolor sit amet, GO
我想使用python查找字符串的所有文档块。我的第一次尝试是这样的:
b = re.compile('\/\*(.)*?\*/', re.M|re.S)
match = b.search(string)
print(match.group(0))
这是可行的,但您会注意到:它只打印一个文档块,而不是所有文档块。
所以我想使用findall函数,它会输出所有的匹配结果,如下所示:
b = re.compile('\/\*(.)*?\*/', re.M|re.S)
match = b.findall(string)
print(match)
但是我从来没有得到任何有