我正在尝试使用Python2.7regex从我正在学习的课程中提供的示例网页中检索数据。我想要运行的代码是:
email_patterns = ['(?P<lname>[\w+\.]*\w+ *)@(?P<domain> *\w+[\.\w+]*).(?P<tld>com)
for pattern in email_patterns:
# 'line' is a line of text in a sample web page
matches = re.findall(pattern,line)
我需要从一个句子中提取字符串"Jahr“之后的一年,并试图用正则表达式来实现这一点。
已证明在regex101:(?<=Jahr )[0-9]+上工作
但是,在python中,我使用的语法一定有问题:
import re
b = re.match(r"(?<=Jahr )[0-9]+", 'Example Jahr 2007 and more text')
print(b)
应产出:2007年
为什么这在python中不起作用?
我刚刚了解到^ab会捕获除a或b以外的任何字符。所以^ab*应该匹配0或多个字符,其中任何字符都不是a或b。
然而,python以某种方式将^ab*与a匹配。
pattern = '[^ab]*'
str = 'a'
r = re.compile(pattern)
m = r.match(str)
if m is None:
print 'No match'
else:
print 'match'
此代码片段打印匹配。我认为我理解^的用法是错误的,或者在代码中犯了一些错误。
有没有办法在Python中动态更新regex组的名称?
例如,如果文本为:
person 1: name1
person 2: name2
person 3: name3
...
person N: nameN
在事先不知道有多少人的情况下,如何命名“personN 1”、“personN 2”、“personN 3”、“...”和“personN”?
我有一个关于正则表达式的问题。使用or构造时
$ python
Python 2.7.3 (default, Sep 26 2012, 21:51:14)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> for mo in re.finditer('a|ab', 'ab'):
...
我想使用python re模块来替换未知数量的表达式,这些表达式总是落在两个表达式之间,这样任何以</w:t>开头、{{和}}之间以<w:t>结尾的表达式都会被替换。到目前为止,我有: import re
a = re.compile(r'</w:t>.*?<w:t>')
a.sub('', 'input_string') 我认为这个模式可能太贪婪了,但主要的问题是,我希望替换任何匹配此模式的表达式的零个或多个实例,前提是它位于{{和}}之间。请给我指个方向好吗?
我很好奇什么是最有效的算法(或常用的)来计算字符串在文本块中出现的次数。
从我的来看,Boyer-Moore字符串搜索算法是字符串搜索的标准算法,但我不确定以一种有效的方式计算出现次数是否与搜索字符串相同。
在Python中,这是我想要的:
text_chunck = "one two three four one five six one"
occurance_count(text_chunck, "one") # gives 3.
编辑:似乎python str.count就是这样一种方法;但是,我找不到它使用的是什么算法。
每次在特定的div中显示str1时,我都需要用另一个字符串(str2)替换一个字符串(str1)。
这就是我到目前为止所得到的
<script type="text/javascript">
$(window).load(function(){
var str=document.getElementById("foo").innerHTML;
var n=str.replace("Google","Yahoo");
document.getElementById("foo").innerHTML=
Python出乎意料地不匹配我想要匹配的字符串:
下面的函数扫描具有特定名称格式的子目录。如果匹配,则打印出来。正则表达式是正确的,我检查了它:。
尽管如此,条件块不会输出任何内容,而在显示之前的print命令中,我要查找的目录仍然存在。所以它应该匹配,但不匹配;
def getRelevantFolders():
pattern = re.compile('(e|d|b)-(heme|gome|jome)-(?!.*?\/)(.+)')
for root, dirs, files in os.walk('/jome'):
pri
我正在学习python中的re模块。我发现了一些(对我来说)不合理的东西,我不知道为什么。下面是一个小例子,
x=re.compile(r'(ha)*')
c=x.search('the man know how to hahahaha')
print(c.group())#output will be nothing,no error.But i expect "hahahaha"
如果我使用re.compile(r'(ha)?'),也会发生同样的情况,
x=re.compile(r'(ha)?')
c=x.se
我需要一些关于str.extract如何在python中使用regex的解释。
例如,我有一些字符串
6/18/1985 Primary Care Doctor
In 1980, the patient was living in Naples and de
2008 partial thyroidectomy
2/6/96 sleep studyPain Treatment Pain Level
我使用以下代码提取字符串中的日期:
str.extract('((\d{1,2}[/]\d{1,2}[/]\d{2,4})|(\d{4}))')
此代码与我的原始刺痛完美地工作在一起