Regex 在两个可能的分隔符之一之前找到一个单词
我需要仅使用基本R函数获取Regex 在两个可能的分隔符之一之前找到一个单词,regex,r,Regex,R,我需要仅使用基本R函数获取:或/之前的字符串。我可以使用stringr实现这一点,但我不想向我的包中添加另一个依赖项。单词可以有可变的字符数,但总是以分隔符之一结尾。我不需要保留后面的内容。。你能在R中使用它吗?也许可以试试: word:12335 anotherword:2323434 totallydifferentword/455 word/32 在这种情况下,gsub更快: gsub("([a-z]+)([/|:])([0-9]+)", "\\1", x) 在Ruby中,类似这样的东
:
或/
之前的字符串。我可以使用stringr
实现这一点,但我不想向我的包中添加另一个依赖项。单词可以有可变的字符数,但总是以分隔符之一结尾。我不需要保留后面的内容。。你能在R中使用它吗?也许可以试试:
word:12335
anotherword:2323434
totallydifferentword/455
word/32
在这种情况下,gsub更快:
gsub("([a-z]+)([/|:])([0-9]+)", "\\1", x)
在Ruby中,类似这样的东西会起作用 从字符串的前面开始,抓取任何单词字符并捕获它们,直到到达非捕获的
/
或:
您可以使用程序包解粘:
library(脱胶)
x[1]“单词”“另一个单词”“总共不同两个”
#>[4]“单词”
由(v0.3.0)于2019-10-08创建
匹配任何内容并将返回,它相当于{res}
{res=.*?}
匹配以{=[:/].*?}
或:
开头的任何内容,并且不会返回,因为我们没有指向/
的lhs=
WoRd
。如果案例混合,您可能希望[a-zA-z]
答案中始终包含代码是个好主意,因为无法保证您提供的链接将来会出现。(无论如何,除了保留代码外,还要保留链接)这是一个kewl链接。它有一个名为“Rubular”的输入框,并生成正则表达式的结果(至少是这个版本的Ruby使用的结果)。我从未见过由R-regex引擎驱动的类似页面,但这样的目的地可能很有用。(我通常只是在R控制台上测试。)谢谢!我不知道您可以在strsplit
中选择分隔符。谢谢泰勒!您可以使用任何正则表达式。
gsub("([a-z]+)([/|:])([0-9]+)", "\\1", x)
Unit: microseconds
expr min lq median uq max
1 GSUB() 19.127 21.460 22.392 23.792 106.362
2 STRSPLIT() 46.650 50.849 53.182 54.581 854.162
^(\w+)(?:[:\/])