RegEx捕获两个字符串之间的所有内容,但避免捕获逗号

时间:2018-08-09 00:50:50

标签: regex html-parsing kantu

Hello StackOverflow社区请查看以下打印内容: enter image description here

如您所见,我正在捕获<title></title>括号之间的所有内容,但我想避免捕获文本中可能存在的任何逗号。

当前,我得到:

Kincrome K1500G - Tool Workshop Contour 472 Piece 15 Drawer 1/4", 3/8" &amp; 1/2" Drive Monster Green

我想获得什么:

Kincrome K1500G - Tool Workshop Contour 472 Piece 15 Drawer 1/4" 3/8" &amp; 1/2" Drive Monster Green

我需要一个单行的regex命令来为我执行此操作。有任何想法吗?

这是我使用的regex命令:

(?<=<title\>)(.*?)(?=\s*\<)

示例文本为:

<title>Kincrome K1500G - Tool Workshop Contour 472 Piece 15 Drawer 1/4", 3/8" &amp; 1/2" Drive Monster Green</title>

我正在使用Kantu浏览器自动化来提取某些网页的标题。请记住,我正在抓取整个网页的HTML。

如果无法执行此操作,那么匹配直到第一个逗号然后返回,例如返回以下内容:

Kincrome K1500G - Tool Workshop Contour 472 Piece 15 Drawer 1/4"

谢谢您的时间。

1 个答案:

答案 0 :(得分:1)

正如评论中提到的,正则表达式不能更改匹配的文本,它只能匹配某些内容。

如果您愿意在第一个逗号处停止比赛,而不是将所有其余的逗号都删除掉,则可以使用以下方法:

(?<=<title\>)(.*?)(?=(,|\s*<\/title>))

https://regex101.com/r/PPb1ba/1