我正在尝试获取一个正则表达式来匹配特定的 url 格式。特别是 stackexchange 的 api url。例如,我希望这两个匹配:
http://api. stackoverflow .com/1。1 /问题/ 1234 /答案 http://api. Physics.stackexchange .com/1。0 /问题/ 5678 /答案
在哪里
我正在使用包str_match中的stringr内容来捕获括号之间的文本。
library(stringr)
strs = c("P5P (abcde) + P5P (fghij)", "Glcext (abcdef)")
str_match(strs, "\\(([a-z]+)\\)")
Run Code Online (Sandbox Code Playgroud)
只给我匹配"abcde"和"abcdef"。如何"fghij"在仍然对两个字符串使用相同的正则表达式的情况下捕获?
我有一些巨大的数据集(介于10-20之间),我需要找出这些数据集之间的关系.数据集非常庞大,计算可能不适合单台计算机.这些数据集中的字段是文本而不是数字.增加复杂性,一些字段也可能有不正确的单词,例如'huose'为'house',我正在使用模糊算法.
为了解决这个问题,我正在考虑使用余弦相似性但不确定这么大的数据集的性能.我的问题是,这种算法是否足以应对这种问题(性能和准确性).如果没有,是否还有其他一些我应该研究的算法?
编辑:更多信息
我将使用的数据集可能是文本文件和数据库表的混合.列中的值通常为10-50 char,并且它不是一个巨大的文档.我寻找的关系是数据集的一列与另一列的相似程度.我有点想根据列之间的相似性得出分数.例如
Col1 Col2 Col3 A B X C S B E C A T V C X E
因此,在上面的例子中,人们可以说Col1并且Col3彼此之间有很强的关系Col1而且Col2关系很弱.
我使用带有C#. 我有一个带有button1和的表格textbox1。
我想要的是:当我单击时button1,如果textbox1包含任何零或零(仅零的任何组合),则显示警报消息,例如:
0
00
0000
000
000000000
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,但如果textbox1有多个零(如 000),它将不起作用
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "0")
MessageBox.Show("Enter Value larger than zero);
}
Run Code Online (Sandbox Code Playgroud)
如果单击时textbox1有任何零组合,我如何获得警报消息button1?
我能够提出两种不同的方法来反转Python中的字符串.
Commonsense规定代码行越多,运行速度越慢.
我做了以下几行代码:
代码1
"".join(reversed(map(lambda x:x,st)))
Run Code Online (Sandbox Code Playgroud)
码2
st[::-1]
Run Code Online (Sandbox Code Playgroud)
这些表现相似.对于一个20000长的字符串,我无法看到甚至一毫秒的性能差异.
我认为第一个应该是一个较慢的方法,因为它执行了3倍以上的操作.
题
为什么我没有看到性能差异?
当要匹配的模式包含通配符时,我应该如何处理使用 KMP-Algorithm的通配符*,例如AB*C,存在的是文本ABEFGCS(此处使用*字符EFG)?
算法中的哪些修改可以解决这个问题?
这是所需的输出:
"bacillus thurungensis" in "bacillus thurungensis"
TRUE
"bacillus thurungensis" in "Sentence containing bacillus thurungensis."
TRUE
"bacillus thurungensis" in "Subspecies bacillus thurungensis34"
FALSE
"bacillus thurungensis" in "bacillus thurungensis, bacillus genus"
TRUE
"bacillus thurungensis" in "Notbacillus thurungensis, must match word"
FALSE
Run Code Online (Sandbox Code Playgroud)
Python 通常认为任何子字符串匹配都是好的,但我并不是在寻找这一点。我希望某些正则表达式或匹配运算符仅当且仅当它将查询视为主题中的单独单词而不仅仅是子字符串时才产生 true。这怎么能实现呢?
以下是我要申请的验证:
现在我尝试了各种组合,但仍然没有成功在 Typescript 中创建这样的条件。这是我尝试过的:
不幸的是,这对我不起作用。任何人都可以帮助我获得所需的解决方案吗?
javascript regex string-comparison string-matching typescript
我很想知道是否可以使用 R 中的 %in% 运算符进行部分字符串匹配。我知道有很多方法可以使用 stringr 等来查找部分字符串匹配,但我当前的代码使用起来更容易%in% 运算符。
例如,想象这个向量:
x <- c("Withdrawn", "withdrawn", "5-Withdrawn", "2-WITHDRAWN", "withdrawnn")
Run Code Online (Sandbox Code Playgroud)
我希望这些都为真,因为字符串包含“撤回”,但只有第一个为真:
x %in% c("Withdrawn")
[1] TRUE FALSE FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
我尝试使用正则表达式至少使其不区分大小写,但这使一切都变得错误:
x %in% c("(?i)Withdrawn")
[1] FALSE FALSE FALSE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)
那么,是否有可能使用带有包装器的 %in% 运算符在所有这些上产生 TRUE?因为它很容易使用tolower的()或TOUPPER(),我不是因为关心区分大小写; 然而,对我来说重要的是代码会触发“撤销”、“撤销”和“5-撤销”。
编辑:这个问题被标记为这个问题的副本R 中的列表不区分大小写搜索;但是,它是不同的,因为它询问是否可以使用 %in% 运算符进行部分字符串匹配。链接的问题根本不使用 %in% 运算符。
说我有一个数据名人堂 df
resident faculty submittedBy match caseID phase
george sally george 1 george_1 pre
george sally sally 0 george_1 pre
george sally george 1 george_1 intra
jane carl jane 1 jane_1 pre
jane carl carl 0 jane_1 pre
jane carl carl 0 jane_1 intra
Run Code Online (Sandbox Code Playgroud)
并且我想df$response根据以下参数在此数据框中添加一列(我认为我需要一组嵌套的ifelses,但是我正在努力正确地执行它):
对于给定的X行,如果df$match= 1,
在以下情况下打印“ 1” df$response:
任何行中df$match,其中df$match= 0具有在相同的内容df$caseID,df$faculty以及df$phase作为列X.否则打印“0”。
所以输出应该是这样的:
response
1
0
0
1
0
0
Run Code Online (Sandbox Code Playgroud)
因为只有第一和第四行包含值,其中有在比赛df$caseID,df$faculty …
string-matching ×10
regex ×5
string ×4
r ×3
algorithm ×2
python ×2
bigdata ×1
c# ×1
capture ×1
if-statement ×1
in-operator ×1
java ×1
javascript ×1
stringr ×1
substring ×1
typescript ×1