0

説明するのは簡単ではないので、例を直接見てみましょう:

<li id="l_f6a1ok3n4d4p" class="online"> <div class="link"> <a href="javascript:show('f6a1ok3n4d4p','random%20strings%204',%20'site2.com');%20" onclick="visited('f6a1ok3n4d4p');" style="float:left;">random strings - 4</a> <a style="float:left; display:block; padding-top:3px;" href="http://www.webtrackerplus.com/?page=flowplayerregister&amp;a_aid=&amp;a_bid=&amp;chan=flow"><img border="0" src="/resources/img/fdf.gif"></a> <!-- a class="none" href="#">random strings - 4  site2.com - # - </a --> </div> <div class="params"> <span>Submited: </span>7 June 2015  | <span>Host: </span>site2.com </div> <div class="report"> <a title="" href="javascript:report(3191274,%203,%202164691,%201)" class="alert"></a> <a title="" href="javascript:report(3191274,%203,%202164691,%200)" class="work"></a> <b>100% said work</b> </div> <div class="clear"></div> </li> <li id="l_zsgn82c4b96d" class="online"> <div class="link"> <a href="javascript:show('zsgn82c4b96d','random%20strings%204',%20'site1.com');%20" onclick="visited('zsgn82c4b96d');" style

上記のコンテンツで、javascript:show('f6a1ok3n4d4p','random%20strings%204',%20'site2.com') から抽出したい

文字列「f6a1ok3n4d4p」と「site2.com」を次のようにします

http://site2.com/f6a1ok3n4d4p

javascript:show('zsgn82c4b96d','random%20strings%204',%20'site1.com') も同じになります

http://site1.com/zsgn82c4b96d

Ruby正規表現で行う必要があります

4

1 に答える 1

1

これにより、その方法についてある程度の洞察が得られるはずです。 https://regex101.com/r/wD4oT8/2

javascript:show\(\'(.*?)'.*?\'([^\']*)\'\)は、最初の引数を $1 として、最後の部分'を $2 としてキャプチャするため、 as を代入することで必要なものが得られます$2/$1

それが正規表現の部分であり、もちろん、"(の使用を含めるjavascript:show\((?:\'|\")(.*?)(?:\'|\").*?\'([^\'\"]*)(?:\'|\")\)か、3 つの引数でのみ許可するなど、適切と思われるように正規表現を調整できます。

/yourregex/.match(yourstring)必要な情報を抽出します。

于 2015-06-30T06:29:34.263 に答える