0

この例の文字列があるとしましょう

    <td><a href="/one-two-three/menus" title="test"</td>
<td><a href="/one-two-three/menus/13:00 title="test"</td>
<td><a href="/one-two-three/schedule/could be multiple delimiters/14:00 title="test"</td>

/one-two-three正規表現を使用して、完全な文字列がで始まり、で終わる場合にのみ2つの結果を取得したいと思いますhh:mm。例:取得したい:

/one-two-three/menus/13:00
/one-two-three/schedule/could be multiple delimiters/14:00

正規表現パターンを試しました/one-two-three[\s\S]+?[0-9][0-9]:[0-9][0-9]

しかし、これは

Found 2 matches:
1./one-two-three/menus" title="test"</td>     <td><a href="/one-two-three/menus/13:00
2./one-two-three/schedule/could be multiple delimiters/14:00

結果が得られる理由はわかりますが、私の質問は、との間に任意の数の区切り文字が存在する可能性のない部分を除外するためにどのパターンを使用できるかということですhh:mm/one-two-threehh:mm

4

2 に答える 2

2

HTML構造が重要な場合、正規表現は間違ったアプローチです。

それ以外の場合(文字列がで囲まれている限り、どこでも文字列を一致させることができる場合")、これを試してみてください。

/one-two-three[^"]+?[0-9][0-9]:[0-9][0-9]

[\s\S]基本的に任意の文字を意味します。"ただし、パスの終わりを示すため、そうでない文字のみが必要です。

于 2012-09-27T12:29:04.547 に答える
0

試す

探す ".*\"/{one-two-three}{.*}{[0-9][0-9]:[0-9][0-9]}.*"

と置換する

\1 = one-two-three \2 = middle parts \3 = hh:mm

交換する\1\3と中間部分がなくなります

お役に立てれば :)

于 2012-09-27T12:42:37.530 に答える