s = "<ants> <pants>"
matchdata = s.match(/<([^>]*)> <([^>]*)>/)
# Use 'captures' to get an array of the captures
matchdata.captures # ["ants","pants"]
# Or use raw indices
matchdata[0] # whole regex match: "<ants> <pants>"
matchdata[1] # first capture: "ants"
matchdata[2] # second capture: "pants"
5条答案
按热度按时间t0ybt7op1#
字符串
如果我们只需要一个结果,就不需要使用
scan
。当我们有Ruby的
String[regexp,#]
时,不需要使用Python的match
。参见:http://ruby-doc.org/core/String.html#method-i-5B-5D
注:
str[regexp, capture] → new_str or nil
kyks70gy2#
字符串
scan
创建一个数组,对于String1
中的每个<item>
,该数组包含一个单元素数组中<
和>
之间的文本(因为当与包含捕获组的正则表达式一起使用时,scan创建一个包含每个匹配的捕获的数组)。last
给出最后一个数组,然后first
给出其中的字符串。6ss1mwsb3#
你可以很容易地使用正则表达式来实现这个目标...
允许单词周围有空格(但不保留):
字符串
或不允许空格:
型
qij5mzcb4#
这里有一个稍微灵活一点的方法,使用
match
方法。这样,你可以提取多个字符串:字符串
w6mmgewl5#
更简单的扫描将是:
字符串