Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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
Ruby on rails Ruby中的Regex不起作用_Ruby On Rails_Ruby_Regex - Fatal编程技术网

Ruby on rails Ruby中的Regex不起作用

Ruby on rails Ruby中的Regex不起作用,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我有一个字符串,我想从中提取某个部分: 原始字符串:/abc/d7_t/g-12/jkl/m-n3/pqr/stu/vwx 所需结果:/abc/d7_t/g-12/jkl/ 整个字符串中的字符数可能不同。它有字母、数字、下划线和连字符。我想基本上在第五个“/”之后剪断绳子 我尝试了一些正则表达式,但似乎格式有一些错误。将除“/”以外的任何字符序列匹配4次:- (\/[^\/]+){4}\/ 匹配除“/”以外的任何字符序列4次:- (\/[^\/]+){4}\/ 如果非regexp方法是可接受

我有一个字符串,我想从中提取某个部分:

原始字符串:
/abc/d7_t/g-12/jkl/m-n3/pqr/stu/vwx

所需结果:
/abc/d7_t/g-12/jkl/

整个字符串中的字符数可能不同。它有字母、数字、下划线和连字符。我想基本上在第五个“/”之后剪断绳子


我尝试了一些正则表达式,但似乎格式有一些错误。

将除“/”以外的任何字符序列匹配4次:-

(\/[^\/]+){4}\/

匹配除“/”以外的任何字符序列4次:-

(\/[^\/]+){4}\/

如果非regexp方法是可接受的,那么以下方法如何:

s.split('/').take(n).join('/')+'/'
其中
s
如果您的字符串(在您的情况下:
/abc/d7_t/g-12/jkl/m-n3/pqr/stu/vwx

然后


应该有用。没有regexp那么紧凑,但有些人可能会发现它更清晰。

如果非regexp方法是可以接受的,那么这个方法如何:

s.split('/').take(n).join('/')+'/'
其中
s
如果您的字符串(在您的情况下:
/abc/d7_t/g-12/jkl/m-n3/pqr/stu/vwx

然后


应该有用。没有regexp那么紧凑,但有些人可能会发现它更清晰。

regexp应该是:
%r(/(?:[^/]+/){4})
。请注意,在这种情况下,最好使用%r文本版本以避免转义斜杠。未切换的斜杠可能是格式错误的原因。

正则表达式可能是:
%r(/(?:[^/]+/){4})
。请注意,在这种情况下,最好使用%r文本版本以避免转义斜杠。未替换的斜杠很可能是格式错误的原因。

是您的朋友吗?那么您希望应用什么规则?是否总是在pqr之前进行切割?还是在第6个
/
实例之后?还是第16个字符?还是第四位?什么澄清这一点,您就可以走到一半了……我做了类似的事情:(/[wW]/[wW]/[wW]/[wW]/[wW]/[wW]/)……我不确定如何找到“/”,而且w&w也不包括我的字符串中多次出现的符号“-”places@Jean-弗朗索瓦·科贝特:字符的数量可能会有所不同。我想在第5个“/”之后剪切字符串,为什么不用
/
拆分它,并用
/
连接前5个部分?你是你的朋友吗?那么你想用什么规则呢?是否总是在pqr之前进行切割?还是在第6个
/
实例之后?还是第16个字符?还是第四位?什么澄清这一点,您就可以走到一半了……我做了类似的事情:(/[wW]/[wW]/[wW]/[wW]/[wW]/[wW]/)……我不确定如何找到“/”,而且w&w也不包括我的字符串中多次出现的符号“-”places@Jean-弗朗索瓦·科贝特:字符的数量可能会有所不同。我想在第5个“/”之后剪切字符串,为什么不用
/
拆分它,并用
/
连接前5个部分?请注意我的评论。这是他想要的第六个斜杠(他忘了把第一个也算在内)。在我看来像是5个斜杠。我只是重复计算。另外,在我发布之前,我检查了我在irb中的结果和他想要的结果。哇,我的错,我测试的原始正则表达式中一定有错误。--请注意我的评论。这是他想要的第六个斜杠(他忘了把第一个也算在内)。在我看来像是5个斜杠。我只是重复计算。另外,在我发布之前,我检查了我在irb中的结果和他想要的结果。哇,我的错,我测试的原始正则表达式中一定有错误。--如果你讨厌正则表达式,那没关系——明确表示非正则表达式解决方案也是可以接受的将是有用的(人们,包括我自己,都喜欢找到一个正则表达式解决方案的补丁,目标是在正则表达式中实现;-))如果你讨厌正则表达式,那没关系——明确表示非正则表达式解决方案也是可以接受的将是有用的(人们,包括我自己,都喜欢找到解决方案的regexp补丁,目的是在regexps中实现;-)