问题标签 [recursive-regex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1010 浏览

c# - 递归正则表达式以匹配键和名称

我有字符串,["02-03-2013#3rd Party Fuel", "-1#Archived", "2#06-23-2013#Newswire"],我想将其分解为几个部分。这些字符串以日期和索引键为前缀并包含名称。

我设计了一个RegEx正确匹配每个键的。但是,如果我想一举匹配索引键、日期键和名称。只找到第一个键。递归组似乎没有像我预期的那样工作。

敏锐的眼睛能看到我错过的东西吗?


我需要的最终解决方案

事实证明我不需要递归组。我只需要 0 到多个序列。这里是完整的RegEx

并且,分段RegEx

0 投票
1 回答
97 浏览

php - 搜索重复的数组php

自从我使用 PHP 以来已经有好几年了,而且我有点生疏了。我正在尝试编写一个快速脚本,该脚本将打开一个大文件并将其拆分为一个数组,然后在每个值中查找类似的事件。例如,该文件由以下内容组成:

我希望脚本自动告诉我其中两个值中包含字符串“apple”并返回“Art. 1.1 The Story of the apple”和“Art. 1.1 The apple gets eating”,然后也执行香蕉和梨也一样。

我不想在数组中搜索特定字符串,我只需要它来计算出现次数并返回什么和在哪里。

我已经有了打开文件然后将其拆分为数组的脚本。只是无法弄清楚如何找到类似的事件。

任何帮助,将不胜感激。

0 投票
4 回答
199 浏览

regex - 匹配以任意数量的空格开头后跟一个字符的*连续*行

我正在尝试匹配以任意数量的空格开头的连续行|,然后是字符。我正在使用s标志,以便.匹配换行符。

到目前为止,我之前使用的空白数量有限|

我在确定达到不符合要求的线路的部分遇到问题。出于某种原因\n\s*[^\|],没有做到这一点。我现在正在做的事情如下:

这显然只适用于两个空间。我想让这项工作适用于任意数量的空间。我研究了递归,但在这种情况下,这似乎是一把很重的枪。现在是我的问题:为什么不起作用\n\s*[^\|],是否有另一种方法可以在不递归的情况下解决这个问题?


下面是一个输入示例和我想得到的结果匹配:

输入字符串:

输出是一个包含内容的字符串:

希望其中的每一行都匹配三个匹配项|

0 投票
2 回答
114 浏览

directory - 在 OSX 上的 bash 中删除太深的文件夹

一个程序递归地创建文件夹。太深,全路径字符串长度大于MAX(getconf ARG_MAX),例如:/A/B/C/A/B/C/A/B/C//A/B/C/A /B/C/A/B/C/A/B/C/A/B/C/A/B/C/A/B/C/A/B/C/A/B/C/A/B /C/A/B/C/A/B/C/A/B/C/A/B/C/A/B/C ……所以“sudo rm -fr /A”表示“地址错误”。

如何创建脚本来处理它?谢谢,

0 投票
4 回答
164 浏览

regex - 获取正则表达式中最外层的分隔符

有没有办法使用正则表达式来获取最外层分隔符之间的文本?我在这里有一个字符串,想要在最外层{%%%%%%}分隔符之间获取文本:

我想得到的文字是:

正则表达式会是什么?我知道里面的文字没有多大意义,这只是一个例子。

0 投票
0 回答
359 浏览

python - 对带有 BeautifulSoup 的 URL 使用正则表达式?

上面的代码可以正常工作,但我想根据我的需要更好、更有效地调整它。我想做的是为每个独特的人抓取和提取“等级”信息(用户类“personal_rank”标签)。我想抓取整个站点中的所有人。

该站点的 URL 结构由各种静态和可变(数字)部分组成,例如:

http://BlahBlah.com/person_profile/XXXXXXXX?-id=XXXXXXXXXX.XXXX&source=personalranking=X *注意这不是我要爬的网站,只是作为例子

其中 X 可以是 0-9 之间的任何数字。这是我的三个不同的问题:

  • 假设 URL 上的所有数字部分对于一个人来说都是唯一的,我可以像我当前的代码一样循环遍历多个循环,是否还有其他方法(更有效)我应该做(而不是四个循环,因为我发现它非常耗时)。

  • 现在,假设只有 num1_count 对单个人是唯一的,并且 num2_count、num3_count 和 num4_count 部分可以是任意组合(只要对应的数字保持不变)并且仍然指的是同一个人(参见下面的示例) ,如何使用正则表达式替换我当前的代码?如果我使用正则表达式来表示部分 URL,我如何将它与循环结合起来?

1) http://BlahBlah.com/person_profile/12345678?-id=1111111111.1111&source=personalranking=1 指彼得潘 2) http://BlahBlah.com/person_profile/12345678?-id=2222222222.1111&source=personalranking=1 也指彼得潘 3) http://BlahBlah.com/person_profile/12345670?-id=2222222222.1111&source=personalranking=1 指罗宾金

  • 跟进第 2 点,假设 num1_count-num3_count 的位数很重要,但最后一个数字部分在某种意义上无关紧要,它可以是一位数或两位数,仍然指的是同一个人,如何我可以编码吗?

提前致谢。

0 投票
2 回答
40753 浏览

python - 正则表达式中的递归模式

这与正则表达式匹配外括号非常相关,但是,我特别想知道如何或是否可以执行此正则表达式的递归模式我还没有找到使用这种策略的 python 示例,所以认为这应该是一个有用的问题!

我已经看到 一些 声称 可以使用递归模式来匹配平衡括号,但没有使用 python 的regex包的示例(注意:re支持递归模式,您需要使用 regex)。

一种说法是语法是b(?:m|(?R))*e

b是什么开始构造,m是什么可以发生在构造的中间,e是什么可以发生在构造的末尾


我想在以下内容中提取大括号的匹配项:

请注意,这很容易对内大括号执行相同的操作:

(在我的示例中,我使用的是 finditer(过度匹配对象),请参见此处。)

因此,我希望以下内容或某些变体可以起作用:

但我被 [] 或error: too much backtracking.

是否可以使用正则表达式的递归提取外括号的匹配对象?


显然,我冒着被击落的风险:

我想强调这是关于如何使用递归模式(如果我的理解是正确的,它会将我们带到常规语言解析之外,所以实际上可能是可能的!)。如果可以做到,这应该是一个更清洁的解决方案。

0 投票
0 回答
80 浏览

php - html模板中的PHP/Regex递归标签

我正在使用自己的 PHP 代码将模板文件呈现为 HTML 代码。我需要一个正则表达式来正确解析递归标签,在这个例子中是权限标签。

示例: 模板代码:

我想正确捕获每个“if”标签内的内容,当然没有任何嵌套标签问题。

我看到了一个可以在 css 上完美运行的正则表达式:

但是,当我更改为我的格式时,它不起作用。我已更改为:

我应该改变什么才能让它工作?

谢谢你。

0 投票
1 回答
46 浏览

php - 如何递归捕获任何文件

以下代码以递归方式捕获 php 扩展中的所有文件。

我想从任何扩展名中获取文件。我想要一些东西来代替它:'/\.(?:php)$/'

0 投票
1 回答
131 浏览

python - 在 PyParsing 中创建对返回函数解析器的函数调用

我想解析可以调用其他函数“返回”的函数的函数调用:

我已经这样做了:

不小心,Python 堆栈溢出,整个 Python 崩溃了。我知道value是递归的并且无限匹配,thisReturnsFunction("Hello!")因为funcal是匹配,因为value是数学,因为funcal是匹配......

如何避免这种情况并设计有效的模式?