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-threehh: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 回答