我有一个
List<Cat>
Run Code Online (Sandbox Code Playgroud)
按猫的生日排序.是否有一种有效的Java Collections方法可以找到1983年1月24日出生的所有猫?或者,一般来说什么是好方法?
我有一个这样的列表:
item.Add("a");
item.Add("as");
item.Add("b");
item.Add("fgs");
item.Add("adsd");
Run Code Online (Sandbox Code Playgroud)
如何查找以(例如)"a"开头的所有项目?
这个"a"不是一些硬编码的字符串,所以我需要一个为每个字符串执行此操作的函数.
我尝试使用FindAll,但我没有弄清楚它是如何工作的.
Br,Wolfy
found = re.findall("g+", "fggfggggfggfg", re.DOTALL)
Run Code Online (Sandbox Code Playgroud)
我想使用findall为模式找到最长的匹配项.我找到了一些解决方案,但仅限于re.match
或re.finditer
.请问有人给我一个建议吗?
我正在尝试使用re.findall按顺序获取查询的开始和结束位置
import re
sequence = 'aaabbbaaacccdddeeefff'
query = 'aaa'
findall = re.findall(query,sequence)
>>> ['aaa','aaa']
Run Code Online (Sandbox Code Playgroud)
我如何得到像findall.start()或findall.end()的东西?
我想得到
start = [0,6]
end = [2,8]
Run Code Online (Sandbox Code Playgroud)
我知道
search = re.search(query,sequence)
print search.start(),search.end()
>>> 0,2
Run Code Online (Sandbox Code Playgroud)
只会给我第一个例子
我需要Python正则表达式的帮助来提取单引号或双引号内的字符串.我找到了一个解决方案,但正则表达式在C#中:
我需要解析这个字符串
tags = { 'one' : "two", "three", 'four' }
Run Code Online (Sandbox Code Playgroud)
并返回数组项:
one
two
three
four
Run Code Online (Sandbox Code Playgroud)
目前我有这个单引号:
quoted = re.findall(r"'(.*?)'", buffer, re.DOTALL)
Run Code Online (Sandbox Code Playgroud) 我想建立一个网络刮板.目前,我正在学习Python.这是非常基础!
Python代码
import urllib.request
import re
htmlfile = urllib.request.urlopen("http://basketball.realgm.com/")
htmltext = htmlfile.read()
title = re.findall('<title>(.*)</title>', htmltext)
print (htmltext)
Run Code Online (Sandbox Code Playgroud)
错误:
File "C:\Python33\lib\re.py", line 201, in findall
return _compile(pattern, flags).findall(string)
TypeError: can't use a string pattern on a bytes-like object
Run Code Online (Sandbox Code Playgroud) 当我试图回答这个问题时:正则表达式在python中分割%年龄和值我注意到我必须从findall的结果重新排序组.例如:
data = """34% passed 23% failed 46% deferred"""
result = {key:value for value, key in re.findall('(\w+)%\s(\w+)', data)}
print(result)
>>> {'failed': '23', 'passed': '34', 'deferred': '46'}
Run Code Online (Sandbox Code Playgroud)
这里findall的结果是:
>>> re.findall('(\w+)%\s(\w+)', data)
>>> [('34', 'passed'), ('23', 'failed'), ('46', 'deferred')]
Run Code Online (Sandbox Code Playgroud)
有没有办法更改/指定使re.findall返回的组的顺序:
[('passed', '34'), ('failed', '23'), ('deferred', '46')]
Run Code Online (Sandbox Code Playgroud)
只是为了澄清,问题是:
是否可以指定顺序或重新排序组以返回re.findall函数?
我使用上面的示例创建了一个字典,以便在您想要更改顺序时提供原因/用例(将键作为值和值作为键)
进一步澄清:
为了处理更大更复杂的正则表达式中的组,您可以命名组,但只有在执行re.search pr re.match时才能访问这些名称.根据我的阅读,findall对元组中返回的组有一个固定的索引,问题是任何人都知道如何修改这些索引.这将有助于使组的处理更容易和直观.
我正在尝试使用命名空间解析 XML,XML 看起来像
<DATA xmlns="http://example.com/nspace/DATA/1.0" xmlns:UP="http://example.com/nspace/UP/1.1" col_time_us="14245034321452862">
<UP:IN>...</UP:IN>
<UP:ROW>
<sampleField>...</sampleField>
</UP:ROW>
<UP:ROW>
<sampleField>...</sampleField>
</UP:ROW>
.
.
.
</DATA>
Run Code Online (Sandbox Code Playgroud)
当我使用下面的代码来解析XML时
tree=ET.parse(fileToParse);
root=tree.getRoot();
namespaces = {'UP':'http://example.com/nspace/DATA/1.0'}
for data in root.findAll('UP:ROW',namespaces):
hour+=1
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
AttributeError: 'Element' object has no attribute 'findAll'
Run Code Online (Sandbox Code Playgroud)
当我尝试遍历 root 的子级并打印标签时,我得到的{http://example.com/nspace/DATA/1.0}ROW
是标签而不仅仅是 ROWS。
我想找到 ROW 元素并提取 SampleField 标记的值。有人可以指导我我可能做错了什么吗?
所以我试图解析一些开放数据来构建数据库。\n这就是我所做的:
\n\n# -*- coding: utf-8 -*-\nimport urllib\nimport xml.etree.ElementTree as ET\n\nurl = \'http://opendata.cwb.gov.tw/govdownload?dataid=C-A0008-001&authorizationkey=rdec-key-123-45678-011121314\'\n\nroot = ET.parse(urllib.urlopen(url)).getroot()\n\nlocations = root.findall(\'dataset/location\')\nprint type(locations)\nprint "Counts:", len(locations)\n
Run Code Online (Sandbox Code Playgroud)\n\n它返回:
\n\nCounts: 0\n
Run Code Online (Sandbox Code Playgroud)\n\n我尝试解析其他一些 xml 数据(更改 url),效果很好
\n\n我正在处理的 xml 数据大致如下:
\n\n<?xml version="1.0" encoding="UTF-8"?><cwbopendata xmlns="urn:cwb:gov:tw:cwbcommon:0.1">\n<identifier>0f819d32-297a-4512-9654-990a565bd080</identifier>\n<sender>weather@cwb.gov.tw</sender>\n<sent>2016-05-23T16:07:06+08:00</sent>\n<status>Actual</status>\n<msgType>Issue</msgType>\n<dataid>CWB_A0008</dataid>\n<scope>Public</scope>\n<dataset>\n <location>\n <stationId>72C44</stationId>\n <time>\n <dataTime>105 4_2</dataTime>\n </time>\n <weatherElement>\n <elementName>\xe5\xb9\xb3\xe5\x9d\x87\xe6\xb0\xa3\xe6\xba\xab</elementName>\n <elementValue>\n <value>21.1</value>\n </elementValue>\n .\n .\n .\n </location>\n <location>\n .\n . \n .\n
Run Code Online (Sandbox Code Playgroud)\n\n抱歉,我是 python 和 ElementTree 的新手,希望得到一些好的建议,谢谢
\n我最近在程序中使用正则表达式。在这个程序中,我使用它们在单词列表中查找与某个 RE 匹配的单词。然而,当我尝试使用这个程序进行反向引用时,我得到了一个有趣的结果。
这是代码:
import re
pattern = re.compile(r"[abcgr]([a-z])\1[ldc]")
string = "reel reed have that with this they"
print(re.findall(pattern, string))
Run Code Online (Sandbox Code Playgroud)
我期望的是结果(当我将它与Pythex["reel","reed"]
一起使用时,正则表达式与这些匹配)
但是,当我使用 python 运行代码(我使用 3.5.1)时,我得到以下结果:
['e','e']
请对 RE 有更多经验的人解释一下为什么我会遇到这个问题以及我可以采取什么措施来解决它。
谢谢。
findall ×10
python ×7
regex ×5
list ×2
python-3.x ×2
xml ×2
c# ×1
collections ×1
elementtree ×1
java ×1
namespaces ×1
quotes ×1
scraper ×1
sequence ×1
sorted ×1
string ×1
web-scraping ×1