如何编写一个 R 函数,它可以接受两个字符串向量并返回常见单词的数量以及哪些常见单词将 stringvec1 中的元素 1 与 stringvec2 的元素 1 进行比较,将 strinvec1 的元素 2 与 stringvec2 的元素 2 进行比较,等等。
假设我有这些数据:
#string vector 1
strvec1 <- c("Griffin Rahea Petersen Deana Franks Morgan","Story Keisha","Douglas Landon Lark","Kinsman Megan Thrall Michael Michels Breann","Gutierrez Mccoy Tyler Westbrook Grayson Swank Shirley Didas Moriah")
#string vector 2
strvec2 <- c("Griffin Morgan Rose Manuel","Van De Grift Sarah Sell William","Mark Landon Lark","Beerman Carlee Megan Thrall Michels","Mcmillan Tyler Jonathan Westbrook Grayson Didas Lloyd Connor")
Run Code Online (Sandbox Code Playgroud)
理想情况下,我有一个函数可以返回常用单词的数量以及常用单词是什么:
#Non working sample of how …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个函数(字符计数),它接受一个模式和一个字符串,然后返回一个数字(计数),该数字表示模式中的任何字符在字符串中出现的次数。
例如:
(char-count "Bb" "Best buy")
会返回,2因为 1 场比赛B和 1 场比赛b,所以加在一起我们得到2
(char-count "AaR" "A Tale of Recursion")
会回来3等等
我尝试re-seq在我的函数中使用,但它似乎只适用于连续字符串。因为(re-seq #Bb "Best Buy)仅查找模式Bb,而不查找每个单独的字符。
到目前为止,我的函数是这样的:
(defn char-count [pattern text]
(count (re-seq (#(pattern)) text)))
Run Code Online (Sandbox Code Playgroud)
但它并没有达到我想要的效果。有人可以帮忙吗?
Ps 对 clojure(以及一般的函数式编程)非常陌生。
character clojure pattern-matching string-matching clojure-repl
根据你的哪个方案在匹配的情况下更好?
是eregi还是stripos或任何其他方法?
是否有可能创建一个匹配所有字符串与五个a和五个b的正则表达式?
像aaaaabbbbb或ababababab或aabbaabbab.
我想它确定性引擎需要多项式时间.
是否有其他匹配的语言可以实现这种匹配?
更新:
我想使用这种表达式进行搜索,所以我改变了目的(?=b*ab*){5}(?=a*ba*){5}([ab]{10}),它很好用!:)我仍然不确定对表达式的表现.但我想我可以只查看前瞻性的表达方式.
我仍然很好奇哪些其他类型的模式,那些很容易解释但难以正则表达式的模式在那里?
说我有一个hashmap,
$hash = array('fox' => 'some value',
'fort' => 'some value 2',
'fork' => 'some value again);
Run Code Online (Sandbox Code Playgroud)
我正在尝试完成自动完成功能.当用户键入'fo'时,我想通过ajax从$ hash中检索3个键.当用户输入'for'时,我想只检索要塞和分叉的密钥.这可能吗?
我在想的是使用二进制搜索来将键与'f'隔离,而不是使用暴力搜索.然后在用户输入查询时继续删除索引.有更有效的解决方案吗?
编辑:关于通配符,我想知道的是,如果有办法做$ hash ["f*"],则返回所有以'f'开头的索引.
我有两个字符串:
a = '54515923333558964'
b = '48596478923333558964'
Run Code Online (Sandbox Code Playgroud)
现在最长的后缀匹配是
c = '923333558964'
Run Code Online (Sandbox Code Playgroud)
什么是使用re的解决方案?
这是我找到的前缀匹配解决方案:
import re
pattern = re.compile("(?P<mt>\S*)\S*\s+(?P=mt)")
a = '923333221486456'
b = '923333221486234567'
c = pattern.match(a + ' ' + b).group('mt')
Run Code Online (Sandbox Code Playgroud) 我创建了一个名为doc.txt的文档,在其中我写了"blaha".我写了一个程序,看它是否说blaha.
File file = new File("C:/Users/Public/doc.txt");
if (file.exists()){
FileReader fr = new FileReader(file);
LineNumberReader ln = new LineNumberReader(fr);
while (ln.getLineNumber() == 0){
String s = ln.readLine();
System.out.println(s);
if(s=="blaha"){
System.out.println("Match");
}else{
System.out.println("Nomatch");
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行该程序时,它总是说Nomatch.为什么是这样?
如何用简单的英语完成if语句.如果此中包含"W"的网址未显示.
我有这个...我只需要wilcard类型表达式.
if (window.location.href == 'http://support.com/support/default.asp?W2297') {
$(".navi").hide();
}
Run Code Online (Sandbox Code Playgroud)
如果网址W****结尾,我怎么能隐藏一些元素..我希望它使用每个http://support.com/support/default.asp?W*完成W的网址
我有一个相当复杂的文本文件file1.txt,没有正确使用.然而,该文件以制表符分隔,即每个字符串由\t.分隔.
我想编写一个脚本/使用一个Unix命令解析整个文件中的某个字符串string1:,该字符串将在冒号后打印该行直到停止\t.
文本文件如下所示:
...kjdafhldkhlfak\tSTRING1:Iwanttokeepthis\tfadfasdafldafh\tSTRING1:andthis\tafsdkfasldh....
Run Code Online (Sandbox Code Playgroud)
所以grep类似的功能输出
Iwanttokeepthis
andthis
Run Code Online (Sandbox Code Playgroud)
在Perl中,我知道如何使用字符串打印字符串
perl -wln -e 'print if /\bSTRING1\b/' file1.txt
Run Code Online (Sandbox Code Playgroud)
如何将一个修订本打印之间的界限STRING1:和\t?
我有一个字符串,我想提取两个文本之间的所有单词,这样:
var str="This is the number I want +2143334 !, again this is the next number I want +234343443 !, last number I want +76645 !, fininshed";
var ext = str.split('want').pop().split('!,').shift();
alert(ext);
Run Code Online (Sandbox Code Playgroud)
但这只是给出了+2143334.我想要的是三个匹配,即:
+2143334, +234343443, +76645
Run Code Online (Sandbox Code Playgroud)
怎么做到呢?