相关疑难解决方法(0)

2071
推荐指数
28
解决办法
40万
查看次数

除了XHTML自包含标记之外,RegEx匹配开放标记

我需要匹配所有这些开始标记:

<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)

但不是这些:

<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)

我想出了这个,并希望确保我做对了.我只抓住了a-z.

<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)

我相信它说:

  • 找一个小于,然后
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 找到任何字符零次或多次,贪婪/,然后
  • 找到一个大于

我有这个权利吗?更重要的是,你怎么看?

html regex xhtml

1323
推荐指数
36
解决办法
270万
查看次数

您能否举例说明为什么用正则表达式解析XML和HTML很困难?

一个错误我看到人们做,并再次试图解析XML或HTML用正则表达式.以下是解析XML和HTML很难的几个原因:

人们希望将文件视为一系列行,但这是有效的:

<tag
attr="5"
/>
Run Code Online (Sandbox Code Playgroud)

人们希望将<或<tag视为标记的开头,但是这样的东西存在于野外:

<img src="imgtag.gif" alt="<img>" />
Run Code Online (Sandbox Code Playgroud)

人们通常希望将起始标记与结束标记匹配,但XML和HTML允许标记包含自身(传统的正则表达式根本无法处理):

<span id="outer"><span id="inner">foo</span></span> 
Run Code Online (Sandbox Code Playgroud)

人们通常希望匹配文档的内容(例如着名的"查找给定页面上的所有电话号码"问题),但数据可能会被标记(即使在查看时看起来是正常的):

<span class="phonenum">(<span class="area code">703</span>)
<span class="prefix">348</span>-<span class="linenum">3020</span></span>
Run Code Online (Sandbox Code Playgroud)

评论可能包含格式不正确或不完整的标记:

<a href="foo">foo</a>
<!-- FIXME:
    <a href="
-->
<a href="bar">bar</a>
Run Code Online (Sandbox Code Playgroud)

你还知道其他什么问题?

html regex xml

397
推荐指数
10
解决办法
4万
查看次数

抓取A元素的href属性

试图在页面上找到链接.

我的正则表达式是:

/<a\s[^>]*href=(\"\'??)([^\"\' >]*?)[^>]*>(.*)<\/a>/
Run Code Online (Sandbox Code Playgroud)

但似乎失败了

<a title="this" href="that">what?</a>
Run Code Online (Sandbox Code Playgroud)

我如何更改我的正则表达式来处理未首先放在标签中的href?

html php dom

113
推荐指数
3
解决办法
9万
查看次数

参考 - 这个正则表达式意味着什么?

这是什么?

这是常见问答的集合.这也是社区Wiki,因此每个人都被邀请参与维护.

为什么是这样?

患的是给我泽码型的问题和答案不佳,没有解释.此参考旨在提供质量问答的链接.

范围是什么?

此引用适用于以下语言:,,,,,,.

这可能过于宽泛,但这些语言共享相同的语法.对于特定功能,它背后的语言标签,例如:

  • 什么是正则表达式平衡组?

regex

52
推荐指数
1
解决办法
11万
查看次数

我可以在HTML属性值中添加什么值?

我是否需要在html属性值中转义引号?允许哪些字符?

这有效吗?

<span title="This is a 'good' title.">Hi</span>
Run Code Online (Sandbox Code Playgroud)

html html5

28
推荐指数
1
解决办法
2万
查看次数

为什么用正则表达式解析XML是个坏主意?

我刚刚回顾了我之前发过的一篇文章,并注意到一些人建议我不使用正则表达式来解析xml.在这种情况下,xml相对简单,Regex没有任何问题.我还在解析许多其他代码格式,所以为了统一起见,它是有意义的.但我很好奇这可能会在其他情况下造成问题.这只是一个"不要重新发明轮子"的问题吗?

regex xml xml-parsing

25
推荐指数
3
解决办法
2万
查看次数

在Java中执行大量字符串替换的最快方法

我必须编写某种解析器来获取String并用其他字符替换某些字符集.代码如下所示:

noHTMLString = noHTMLString.replaceAll("</p>", "\n");
noHTMLString = noHTMLString.replaceAll("<br/>", "\n\n");
noHTMLString = noHTMLString.replaceAll("<br />", "\n\n");
//here goes A LOT of lines like these ones
Run Code Online (Sandbox Code Playgroud)

该函数非常长并且执行许多字符串替换.这里的问题是它需要花费很多时间,因为它被称为很多次的方法,从而降低了应用程序的性能.

我已经阅读了一些关于使用StringBuilder作为替代方案的一些线程,但它缺少ReplaceAll方法,并且正如此处所述,string.replaceAll()性能是否受到字符串不变性的影响?String类中的replaceAll方法适用于

Match Pattern&Matcher和Matcher.replaceAll()使用StringBuilder存储最终返回的值,因此我不知道切换到StringBuilder是否会真正减少执行替换的时间.

您是否知道以快速方式快速完成大量String替换?你对这个问题有什么建议吗?

谢谢.

编辑:我必须创建一个报告,其中包含一些带有html文本的字段.对于每一行,我正在调用替换这些字符串中的所有html标记和特殊字符的方法.使用完整报告,解析所有文本需要3分钟以上.问题是我必须经常调用该方法

java regex string

11
推荐指数
2
解决办法
2万
查看次数

使用Ruby获取网页的所有链接

我正在尝试使用Ruby检索网页的每个外部链接.我正在使用String.scan这个正则表达式:

/href="https?:[^"]*|href='https?:[^']*/i
Run Code Online (Sandbox Code Playgroud)

然后,我可以使用gsub删除href部分:

str.gsub(/href=['"]/)
Run Code Online (Sandbox Code Playgroud)

这很好用,但我不确定它在性能方面是否有效.这可以使用,或者我应该使用更具体的解析器(例如nokogiri)?哪种方式更好?

谢谢!

ruby regex string nokogiri

11
推荐指数
4
解决办法
8410
查看次数

语法高亮的编程语言是否可能使用正则表达式?

我们现在都知道,使用正则表达式解析HTML通常是不可能的,因为它正在解析上下文敏感的语法,而正则表达式只能解析常规语法.其他编程语言也是如此.

现在,最近,Rainbow.js语法荧光笔已经公布.它的前提被描述为非常简单:

彩虹本身很简单.它遍历代码块,处理正则表达式模式,并在标记中包装匹配模式.

我认为语法突出显然本质上是一个与语言解析相同的复杂任务,如果我们假设它必须既好又适合多种语言.尽管如此,虽然对该库有相当多的批评,但黑客新闻的讨论(作为技术倾向的讨论的例子)都没有提到使用正则表达式突出语法在一般情况下基本上是不可能的,我会考虑一个主要的,显示停止的缺陷.

现在的问题是:有什么我想念的吗?特别是:

  1. 一般来说,使用正则表达式突出显示语法吗?
  2. 这是一个应用80/20规则的实例,正则表达式是否足够有用?

regex parsing syntax-highlighting

11
推荐指数
2
解决办法
3482
查看次数