0

我正在尝试 grep html 表单的部分,特别是<form action = ….
我最初尝试的操作部分:
grep -E -e 'form\s*action\s*=.*[.]html' ./*
但它不起作用(尽管有这样的字符串。
然后我尝试了基本的: grep -E -e 'form\s*action\s*=' ./*但这也不起作用!
什么我做错了吗?

4

2 回答 2

1

这不会让你采取行动。它会让你在行动之前得到一部分。例如,如果你有<form id="myForm" action="myFile.php">正则表达式只会让你form id="myForm" action=

所以改为尝试:

grep -E -o -i -e '<form\s+[^>]*action\s*=[^>]*>' ./*

[^>]*表示除>, 零次或多次之外的所有内容。
-o表示只获取匹配的部分
-i表示不区分大小写

于 2013-08-28T11:36:50.703 回答
0

为什么不使用 html 解析器/xpath 实现?就像我的Xidel一样:

这将返回操作部分中的 url:

xidel ./* -e //form/@action

或者使用模式匹配,而不是 xpath:

xidel ./* -e '<form action="{.}"/>*'

您甚至可以在其中进行所有进一步的处理。例如,不仅要获取操作,还要获取所有输入元素的值 url-encoded 您可以使用:

xidel ./* -e //form/form(.)
于 2013-08-28T13:03:19.947 回答