我想用 BeautifulSoup 捕获一些标签:一些<p>标签,<title>标签,一些<meta>标签。但无论他们的情况如何,我都想抓住他们;我知道有些网站会这样做元:<META>我希望能够抓住这一点。
我注意到 BeautifulSoup 默认区分大小写。如何以不区分大小写的方式捕获这些标签?
我正在尝试为我的 Wikipedia api 调用添加不区分大小写的功能。维基百科在页面命名方式上区分大小写。因此,http://en.wikipedia.org/wiki/Cat将产生一个关于动物的页面,http://en.wikipedia.org/wiki/CAT将产生一个消歧页面,并将http://en.wikipedia.org/wiki/CAt产生一个该页面不存在的通知。
我当前的问题是我想使用 API 返回页面,就像维基百科那样。我目前在 Python 中使用以下 API 调用:
"http://en.wikipedia.org/w/index.php?title=" + topic + "&action=render"
Run Code Online (Sandbox Code Playgroud)
当使用 GUI 的搜索框在维基百科上搜索时,“cat”和“CAt”将返回有关动物的页面,而“cAT”和“CAT”将返回消歧页面。
如何通过 API 复制此行为?
search wikipedia case-insensitive wikipedia-api mediawiki-api
如何使用不区分大小写的模式进行多字段排序搜索?
我正在使用 lucene 4.10.4 版本并使用多文件排序进行排序
SortField[] sortFiled = new SortField[2];
sortFiled[0] = new SortField("name", SortField.Type.STRING);
sortFiled[1] = new SortField("country", SortField.Type.STRING);
TopDocs topDocs = indexSearcher.search(query, 10 , new Sort(sortFiled));
Run Code Online (Sandbox Code Playgroud)
它给出排序结果,但在区分大小写的模式下。我希望它以不区分大小写的模式排序。
我正在研究我的应用程序中不区分大小写的处理方式。到目前为止,我意识到有两种不同的情况:
\n\n对于情况 1,您应该始终使用用户的区域设置。这意味着,例如,当对列表中的项目进行排序时,并且您希望不区分大小写地进行排序,那么您应该使用区域设置感知的不区分大小写的字符串比较函数。
\n\n对于情况 2,您不想使用用户的区域设置似乎是合乎逻辑的,因为如果您的用户使用不同的区域设置,但仍然使用相同的数据集,这可能会产生不良影响(例如,如果您正在管理图书馆软件,则可以使用书籍的名称作为数据库中书籍实例的键,并且希望处理这种不区分大小写的情况(我知道这是一种简化))。
\n\n当使用 STL 容器(如 std::map)时,我注意到将键设置为大写,然后对大写的搜索值执行查找会更有效。这比在地图上循环时执行不区分大小写的比较更有效。对于 std::unordered_map 可能需要执行这样的技巧。
\n\n然而,我意识到这也可能会产生奇怪的效果,我想知道Windows(也使用不区分大小写的文件名)如何处理这些情况。
\n\n例如,德语字符 \xc3\x9f (ringel-S) 在大写时写为 SS。这似乎暗示 \xc3\x9f.txt 和 SS.txt 应该表示相同的文件,因此 \xc3\x9fs.txt 和 s\xc3\x9f.txt 以及 sss.txt 和 SSS.txt 也应该表示相同的文件文件。但根据我的实验,Windows 中似乎并非如此。
\n\n所以我的问题是:
\n\n(在python 3.6.0上运行)
Usage: prog.py {caesar | vigenere} [key]
parser = argparse.ArgumentParser()
subp = parser.add_subparsers()
caesar = subp.add_parser("caesar", aliases=["c"], allow_abbrev=True)
args = parser.parse_args()
$ python prog.py caes 123
prog.py: error: invalid choice: 'caes' (choose from 'caesar', 'c')
Run Code Online (Sandbox Code Playgroud)
为什么subparser缩写即使带有 也无效allow_abbrev=True?
argparse基本上,在接受缩写subparsers名称/别名方面存在问题。
这是代码:
Usage: prog.py [caesar] [key]
import sys, argparse
def main(argv):
parser = argparse.ArgumentParser
(description="runs text through X cipher")
subp = parser.add_subparsers\
(help="sub-command help")
#<ArgumentParser object>
caesar = subp.add_parser\
("caesar", aliases=["c"], allow_abbrev=True) …Run Code Online (Sandbox Code Playgroud) 我想问一个关于 SQL Server 和 EF Core 的问题。数据库中的排序规则是Latin1_CI_AS,我想编写一个包含土耳其语字符的搜索查询。
在数据库中,'personnel'表中有一个名为“SEL?M”的记录。当我在 EF Core 中编写这样的查询时:
public async Task<IList<PersonnelGetDto>> Get(PersonnelGetPayload payload)
{
if (payload.Name != null)
query = query.Where(x => x.Name.Contains(payload.Name));
}
Run Code Online (Sandbox Code Playgroud)
如果我的搜索条件是“selim”,则列表为空。
我没有机会将数据库中的排序规则更改为土耳其语,因为我们的应用程序是多语言的。我认为其他语言会有问题。还是我错了?
我还写了字符串扩展名。但是,当将 LINQ 查询转换为 SQL 时,所有记录都会进入服务层,因为 LIKE 运算符未分配 WHERE 子句。在sql端运行这个条件非常重要。如果我把所有的数据集都拿到服务层去查询,会花费我很多。
当我在数据库中键入查询时,我可以解决这个问题:
SELECT * FROM Personnel WHERE Name LIKE 'selim' COLLATE Turkish_CI_AS
Run Code Online (Sandbox Code Playgroud)
我想如果我可以在 EF Core 上操作整理,我会解决这个问题。
c# sql-server case-insensitive entity-framework-core .net-core
为了兼容性/ JIT-Compiling性能,在JS/HTML中使用UPPER CASE还是小写更好?例如:
<DIV> my content </DIV>
<div> my content </div>
ALERT(DOCUMENT.LOCATION);
alert(document.location);
Run Code Online (Sandbox Code Playgroud)
这不是一个新手问题,我知道小写是事实上的标准.但是因为我已经看到了一些大写的JS + HTML,我想知道哪个更好写.(就像SQL完全是大写的?)
我有两个文件,sourcecolumns.txt和destcolumns.txt.我需要做的是将源与dest进行比较,如果dest不包含源值,则将其写入新文件.下面的代码有效,除了我有这样的区分大小写的问题:
来源:CPI
dest:Cpi
这些因为大写字母而不匹配,所以输出不正确.随时欢迎任何帮助!
string[] sourcelinestotal =
File.ReadAllLines("C:\\testdirectory\\" + "sourcecolumns.txt");
string[] destlinestotal =
File.ReadAllLines("C:\\testdirectory\\" + "destcolumns.txt");
foreach (string sline in sourcelinestotal)
{
if (destlinestotal.Contains(sline))
{
}
else
{
File.AppendAllText("C:\\testdirectory\\" + "missingcolumns.txt", sline);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个VB.Net应用程序,需要访问我几乎肯定有C#后端的Web服务.至少,后端为我提供了仅按大小写区分的类,并且在许多类中,有些属性和方法仅按大小写区分.
VB.Net不区分大小写,并且它看到许多这些项目含糊不清.
我想到了一些处理这个问题的方法,但在我走上可能很难的道路之前,我想提出一些建议.
以下是我考虑过的一些方法.
修改生成的wsdl代码.由于xml输出不再符合Web服务要求,因此在响应时出现问题.我认为可能有一些属性可以用来覆盖它,但我不确定它们是什么.即便如此,这个Web服务也会经常更新,我不想每次刷新时都要重新修改服务.
创建一个csharp包装器项目,我用不同的名称公开底层类.主要通过继承.虽然这里的一个大问题是属性和方法的问题,这些问题和方法也只是按案例区分.
我确信在某些时候我可以让这些解决方案中的一个或另一个起作用,但如果有人有任何我没想到的更好的建议,我会很感激帮助.
谢谢
我想知道哪种方法更好地检查var(由用户在键盘上输入)是否以不区分大小写的方式与正则表达式匹配。我知道有一些不同的可能性。例如:我想一个正则表达式匹配一个空值,而这一切的名单:Y,N,y,n,Yes,No,YES,NO
我搜索了不同的方法。不知道是否会更好。我会把其中的一些给我工作。
第一个是将所有内容都设置为大写的“ tricky”设置,以进行比较:
#!/bin/bash
yesno="null" #any different value for initialization is valid
while [[ ! ${yesno^^} =~ ^[YN]$|^YES$|^NO$|^$ ]]; do
read -r yesno
done
Run Code Online (Sandbox Code Playgroud)第二个是使用shopt -s nocasematch。但是不确定这样做之后是否可以还原,因为我不想为所有脚本设置它。
#!/bin/bash
yesno="null" #any different value for initialization is valid
shopt -s nocasematch
while [[ ! ${yesno} =~ ^[yn]$|^yes$|^no$|^$ ]]; do
read -r yesno
done
Run Code Online (Sandbox Code Playgroud)这些正则表达式能否以任何方式得到改进?有没有更好(更优雅)的方法?在第二种方法上,有没有办法还原该设置?
case-insensitive ×10
c# ×3
html ×2
python ×2
.net-core ×1
argparse ×1
bash ×1
c++ ×1
java ×1
javascript ×1
lucene ×1
parsing ×1
regex ×1
search ×1
sql-server ×1
string ×1
subparsers ×1
vb.net ×1
web-services ×1
wikipedia ×1
windows ×1