【发布时间】:2019-01-16 08:28:57
【问题描述】:
您好 StackOverflow 社区 请查看以下打印内容:
正如您所见,我正在捕获 <title> 和 </title> 括号之间的所有内容,但我想避免捕获文本中可能存在的任何逗号。
目前我得到:
Kincrome K1500G - Tool Workshop Contour 472 Piece 15 Drawer 1/4", 3/8" & 1/2" Drive Monster Green
我想得到什么:
Kincrome K1500G - Tool Workshop Contour 472 Piece 15 Drawer 1/4" 3/8" & 1/2" Drive Monster Green
我需要一个为我执行此操作的单行正则表达式命令。有任何想法吗?
这是我使用的正则表达式命令:
(?<=<title\>)(.*?)(?=\s*\<)
示例文本是:
<title>Kincrome K1500G - Tool Workshop Contour 472 Piece 15 Drawer 1/4", 3/8" & 1/2" Drive Monster Green</title>
我正在使用 Kantu 浏览器自动化来提取一些网页的标题。请记住,我正在抓取整个网页的 HTML。
如果无法做到这一点,那么匹配到第一个逗号然后返回,例如返回这个:
Kincrome K1500G - Tool Workshop Contour 472 Piece 15 Drawer 1/4"
感谢您的宝贵时间。
【问题讨论】:
-
您可以将您的输入作为文本而不是图像发布吗? (无法从图像中复制文本...)
-
正则表达式做不到。它们要么匹配,要么不匹配,然后返回匹配的内容。如果您需要编辑结果,则需要使用其他处理它的东西来完成。
-
正如@Barmar 所说,你不能用一行正则表达式来做到这一点。您可以匹配一个正则表达式,然后用另一个正则表达式替换以删除逗号,但您不能使用单个正则表达式来执行此操作,这是您的要求。
-
@Jackknife 如果您想通知某人发表评论,请在其姓名前加上
@。 -
您可以使用
/(?<=<title\>)([^,]*?)/来匹配第一个逗号之前的所有内容,但这似乎不是您真正需要的。你只会得到Kincrome K1500G - Tool Workshop Contour 472 Piece 15 Drawer 1/4"
标签: regex html-parsing kantu