这是一个简单的例子:
<x>
我有兴趣扫描scan
和其他所有内容(无论可能是什么)的实例。我无法真正使用<x>
因为我不知道ss.scan_until(/<x>/)
=> "aaa <x>"
ss[0]
=> "<x>"
以外的文字格式(我也不关心)。
ss[0]
所以pre_match
给了我正则表达式匹配的内容。我如何获得其余文本? result.sub(ss[0], '')
将所有内容都抓回到原始字符串的开头,而不是回到上一个指针。作为解决方法,我只需要["aaa ", "<x>"," bbb ccc ", "<x>", " ddd ", "<x>"]
来获取我的文本。看起来很笨重,几乎就像我没有使用我错过的某种方法。
为了澄清,我想要这个输出:
for line in my_keywordfile.readlines():
for keyword in line.strip("[]").strip("'").split(","):
答案 0 :(得分:0)
您可以使用split
来完成其余工作:
string.split(/<x>/)
#=> ["aaa ", " bbb ccc ", " ddd "]
编辑:为了保留包括分隔符的顺序,正如Cary指出的那样,只需通过捕获组在分割中包含分隔符:
string.split(/(<x>)/)
#=> ["aaa ", "<x>", " bbb ccc ", "<x>", " ddd ", "<x>"]