Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 Regexp:如何匹配字符串中由单词分隔的部分_Ruby_Regex - Fatal编程技术网

Ruby Regexp:如何匹配字符串中由单词分隔的部分

Ruby Regexp:如何匹配字符串中由单词分隔的部分,ruby,regex,Ruby,Regex,我有这样一根弦: 测试文本1一些文本测试文本2测试文本3 我想检索第二个案例(在“some text”之后,嵌套span),即测试文本2测试文本3,并匹配顶级span的文本和内部span中的文本:测试文本2和测试文本3(但不是测试文本1) 我的regexp:(.*)(.*) 但我明白了: 如何修复regexp以获得测试文本2和测试文本3匹配组并忽略第一个跨度(无嵌套)?这应该做: s = "<span>test text 1</span> some text <s

我有这样一根弦:

测试文本1一些文本测试文本2测试文本3

我想检索第二个案例(在“some text”之后,嵌套span),即
测试文本2测试文本3
,并匹配顶级span的文本和内部span中的文本:
测试文本2
测试文本3
(但不是
测试文本1

我的regexp:
(.*)(.*)

但我明白了:

如何修复regexp以获得
测试文本2
测试文本3
匹配组并忽略第一个跨度(无嵌套)?

这应该做:

s = "<span>test text 1</span> some text <span>test text 2<span>test text 3</span></span>"
matches = s.scan(/<span.*?>.*?<\/span.*?>/)
p matches[1] # "<span>test text 2<span>test text 3</span>"
s=“测试文本1一些文本测试文本2测试文本3”
匹配项=s.scan(/.*?/)
p匹配[1]#“测试文本2测试文本3”
我找到了解决方案

(?!<span.*<\/span>.*<span)<span.*?>(.*?)<span.*?>(.*?)<\/span><\/span>

(?!如果这是HTML,你不能在Ruby中使用HTML解析器吗?@Stribizev hmmm…。好问题!但我相信使用regexp有一个简单的解决方案)是的,可以使用regex完成,但它看起来很难看,答案很可能被否决。