我正在尝试匹配模式并提取其后的值。我用下面的正则表达式匹配,它帮助我。当我回复它时,没有值被提取,因为我得到了空白值。
有人让我知道我犯了什么错误。
示例正则表达式:
class="remove_link_style">Site Issue - Please check</a></td><td>
<ahref="/0051043899"class="remove_link_style">Working</a></td><td>
<ahref="/0051043899"class="remove_link_style">
使用了patten:text=$(echo "class="remove_link_style">Site Issue - Please check</a></td><td><ahref="/0051043899"class="remove_link_style">Working</a></td><td><ahref="/0051043899"class="remove_link_style">" | grep -o --perl-regexp "(?class="remove_link_style")[a-zA-Z0-9_]+"")
我还想提取class="remove_link_style"
之后</a></td><td>
答案 0 :(得分:1)
我认为你会发现很多参考和建议都没有使用像product_id = <T-Shirt Product ID Here>
ProductImage.where(product_id: product_id).group_by(&:name).values
这样的bash工具来解析XML。有了这个上下文,我建议使用任何解析工具,如http://xmlsoft.org/xmllint.html或http://xmlstar.sourceforge.net/doc/xmlstarlet.txt。但是,如果您想快速提取内容,可以将grep/sed/awk
和grep
结合起来,如下所示。
cut
打印出来:
echo 'class="remove_link_style">GB|Trekkinn-UK|Manualcrawlrequest|1</a></td><td><ahref="/0051043899"class="remove_link_style">WorkInProgress</a></td><td><ahref="/0051043899"class="remove_link_style">' | grep -Eo 'style"[^<>]*>[^<>]+' | cut -f2 -d">"
编辑:根据OP的要求,将输出存储到数组中。
如果您需要将输出存储在数组中,则需要设置IFS,因为元素中有空格。
GB|Trekkinn-UK|Manualcrawlrequest|1
WorkInProgress