相关疑难解决方法(0)

正则表达式捕获第n个匹配项

有什么方法可以使用正则表达式返回第n次出现?我确实搜索了论坛,只发现了超出正则表达式本身的解决方案(即需要编程语言的支持)。

示例:正则表达式:

(?:\$(\d+(?:,\d{3})*\.\d{2}))
Run Code Online (Sandbox Code Playgroud)

输入:

    thiscanbeanything$25.74thiscanbesomethingelse
alsowithnewlines$533.63thisonetoo$54.32plusthis$62.42thisneverends
Run Code Online (Sandbox Code Playgroud)

我需要提取第一个(25.74)。稍后,我可能需要提取第三个(即54.32)。

我的正则表达式当前正在匹配所有匹配项。我可以在匹配后检索第n个元素,但是我的问题是:是否可以仅通过正则表达式来实现(即正则表达式将仅返回我想要的第n个元素)?

谢谢!

regex

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

grep命令从json中查找key的值

请解释如何使用grep命令从以下json中提取一些指定的文本 -

{"result":"Customer information saved successfully with Customer id :59 and version :1","status":{"responseCode":200,"result":null,"responseMessage":"Success","responseType":"info"}}
Run Code Online (Sandbox Code Playgroud)

经过一些谷歌搜索后,通过使用带正则表达式的grep看起来是可能的.但它没有用.你能指出错误吗?

cat response.txt | grep -Po '(?<="Customer id ":)[0-9]+'
Run Code Online (Sandbox Code Playgroud)

假设:response.txt包含上面的json.

如果是,请解释.

linux

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

如何在PHP中使用带有preg_match_all的Regex提取某些HTML标记,例如<ul>?

我是正则表达式的新手.我想从网页源中获取一些数据.我曾经 file_get_contents("url")获得该页面的HTML源代码.现在我想在一些特殊标签中捕获一部分.

preg_match_all()为此找到了作品.现在我想要一些帮助来解决我的问题,如果可能的话,帮助我找出如何解决这样的类似问题.

在下面的示例中,我如何获取数据<ul>?(我希望这个示例HTML代码可以让我更容易理解.)

<div class="a_a">qqqqq<span>www</span> </div>
<ul>
<li>
    <div class="a_a"><h3>aaaa</h3> aaaa aaaaa</div>
</li>
<li>
    <div class="b_b">bbbbb <span class="s-s">bbbb</span> bbbb</div>
</li>
<li>
    <div class="c_c d-d">cccc cccc ccccc</div>
</li>
</ul>
<table>
<tr>
    <td>sdsdf</td>
    <td>hjhjhj</td>
</tr>
<tr>
    <td>yuyuy</td>
    <td>ertre</td>
</tr>   
</table>
Run Code Online (Sandbox Code Playgroud)

html php regex preg-match-all preg-match

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

Powershell中正则表达式的等效于\ K是多少?

我在regex101上创建了一个正常表达式,它按预期工作,但问题是在Powershell中一个部分显然无效; 这个\K.

本质上,我正在寻找一个字符串的实例,并在字符串的实例后返回整个单词.所以这是一个例子:

\btest\s+\K\S+
Run Code Online (Sandbox Code Playgroud)

这会查找单词的每个示例test并返回单词后面的单词.我确实尝试过使用Lookaheads和Lookbehinds进行实验,而其中一些确实有效,但它们仍然要么返回,test要么还有其他不必要的字符.

有没有办法\K在powershell中复制?或者甚至更好,任何允许PowerShell使用的附加组件\K

regex powershell regex-lookarounds

1
推荐指数
1
解决办法
456
查看次数

在下面的例子中,负面的后视是如何运作的?

为什么在数据(d)上应用正则表达式(rx)给出输出(o)?
正则表达式(rx):

s/(?<!\#include)[\s]*\<[\s]*([^\s\>]*)[\s]*\>/\<$1\>/g
Run Code Online (Sandbox Code Playgroud)

数据(d):

#include  <a.h>  // 2 spaces after e
Run Code Online (Sandbox Code Playgroud)

输出(o):

#include <a.h>  // 1 space is still there
Run Code Online (Sandbox Code Playgroud)

预期产出是:

#include<a.h>  // no space after include
Run Code Online (Sandbox Code Playgroud)

regex perl

0
推荐指数
1
解决办法
69
查看次数