正则表达式 – 如何解析HTML/XML文档?

我被告知并经常看到别人被告知:不要使用正则表达式来解析用HTML,XML等语言编写的文档.名称的原因各不相同,在这里并不重要.当被问及做什么时,通常会将您引用到库中来解析这样的文档–PHP扩展,JS框架等.大多数时候它们似乎依赖于文档对象模型.我的问题不是如何在程序或脚本中执行此操作.在实际情况下,我不会尝试再次发明轮子,而只是使用一个可用的框架.我想知道的是–这些框架是如何做到的?

正则表达式 – 如何检查正则表达式中的两个子表达式中是否至少有一个匹配?

我试图将浮点十进制数与正则表达式匹配.小数点之前可能有也可能没有数字,小数可能存在也可能不存在,如果存在则可能有或没有数字..我写了这个正则表达式:哪个正确匹配以下内容:但是,这也匹配空字符串或只是小数点的字符串,这是我不想要的.目前我在运行正则表达式后检查$1或$3的长度大于0.如果不是,则无效.有没有办法在正则表达式中直接执行此操作?

正则表达式 – Perl分割函数 – 使用重复字符作为分隔符

我想用重复字母作为分隔符来分割字符串,例如,“123aaaa23a3”应分为,而“123abc4”应保持不变.所以我尝试了这个:但这会返回’123′,’a’,’23a3′,这不是我想要的.现在我知道这是因为’aaaa’中的最后一个’a’被parantheses捕获并因此被split()保留.但无论如何,我不能添加类似的东西?嗯,这是一个有趣的.我的第一个想法是–你的分隔符总是奇数,所以你可以丢弃任何奇数编号的数组元素.也许是这样的事情?

正则表达式 – 如何grep所有非ASCII字符?

我有几个非常大的XML文件,我试图找到包含非ASCII字符的行.我尝试过以下方法:但是这会返回文件中的每一行,无论该行是否包含指定范围内的字符.我的语法有错吗?或者我做错了什么?

包含有序交替的正则表达式是否可以重写为仅使用无序交替?

假设我有一个正则表达式语言支持文字,正面和负面的字符类,有序的交替,贪婪的量词?.用无序交替替换有序交替是否会降低这种形式主义的表达能力?(无序交替—有时也称为“无序选择”—是L(S|T)=L(S)L(T),而有序交替是L(S|T)=L(S)(L(T)–{ainL(T):a在L(S)中延伸一些b}}.具体地说,如果交替是无序的,模式a|aa将匹配字符串a和aa,但仅限于a如果订购了更改.)换句话说,给定包含有序交替的模式S,该模式是否可以重写为不包含有序替换的等效模式T(但可能是无序替换)?

正则表达式与递归表达式匹配嵌套大括号?

我正在尝试匹配像sp{…}这样的文本,允许花括号嵌套.这是我到目前为止:我无法让它与以下文字匹配:sp{{word}}.任何人都可以看到我的正则表达式有什么问题吗?有很多问题.递归位应该是:全部一起: