Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在两个可能的分隔符之一之前找到一个单词_Regex_R - Fatal编程技术网

Regex 在两个可能的分隔符之一之前找到一个单词

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中,类似这样的东

我需要仅使用基本R函数获取
/
之前的字符串。我可以使用
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

字符是否始终为alpha a-z?或者他们可以是任何角色?对于正则表达式问题,尽量提供尽可能多的细节。还有,你试过什么?是的,总是阿尔法,尽管情况可能是复杂的
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+)(?:[:\/])