标签: regex-group

仅将正则表达式替换为捕获的组

我试图理解为什么以下内容没有给我我认为(或想要:))应该返回的内容:

sed -r 's/^(.*?)(Some text)?(.*)$/\2/' list_of_values
Run Code Online (Sandbox Code Playgroud)

或 Perl:

perl -lpe 's/^(.*?)(Some text)?(.*)$/$2/' list_of_values
Run Code Online (Sandbox Code Playgroud)

所以我希望我的结果只是Some text否则(意味着如果 中没有捕获任何内容$2)那么它应该是 EMPTY 。

我确实注意到,对于perl,如果位于行/字符串的开头,它确实可以工作(这让我感到困惑......)。Some text(还注意到删除^$没有效果)

基本上,我试图获取此处讨论的选项grep会返回什么。只有我想要/需要在正则表达式中使用 sub/replace 。--only-matching

编辑(添加示例数据)

输入示例:

$ cat -n list_of_values
     1  Black
     2  Blue
     3  Brown
     4  Dial Color
     5  Fabric
     6  Leather and Some text after that ....
     7  Pearl Color
     8  Stainless Steel
     9  White
    10 …
Run Code Online (Sandbox Code Playgroud)

regex perl sed regex-group

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

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

使用模式从字符串中提取子字符串

我想从基于模式的长字符串中提取子字符串。想知道获得它的最佳方法是什么?

http://abcdef?menu=xyz&source=push&push_id=1212239617294503480&message_id=7658a0a6-9d31-4c3c-9aa0-9169f24e2fdc
Run Code Online (Sandbox Code Playgroud)

图案: 'menu'

子串寻找: 'xyz'

regex sql string regex-group presto

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

正则表达式匹配字符串,如果它只匹配Java中的一个组

我想知道,只有在测试字符串仅属于其中一个测试组的情况下,才有正则表达式可以帮助匹配文本吗?

假设我有这两类:

第一组: [a-zA-Z]

第2组: [0-9]

因此,是否存在适用的正则表达式,以仅匹配以下字符串:abc或仅匹配此字符串:123

但是,当有一个字符串表示两个组的组合时,这将不匹配任何内容123abc2b

PS:我正在使用Java。

java regex regex-negation regex-group

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

如何获得URL的一部分?

如何从网址中删除除基本网址和第一部分以外的所有部分。零件数量不确定。基本网址是可变的。我尝试了一些正则表达式,但没有成功。

$url =  http://www.example.com/part1/part2/part3/part4;
base_url = parse_url($url, PHP_URL_HOST); // Outputs www.example.com

$desired_output = http://www.example.com/part1;
Run Code Online (Sandbox Code Playgroud)

php regex preg-replace regex-group regex-greedy

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

如何使用正则表达式将字符串的开头(在用户指定的字符之前)放入组中?

在这里提出这个问题,但是我不想要python特定的解决方案。它应该可以在JavaScript和任何其他主流语言中工作。它必须是一个正则表达式。

假设分隔符为“ !

下表显示了一些示例输入的期望行为

+------------------------+--------+
|         INPUT          | OUTPUT |
+------------------------+--------+
| "aaaa!bbbb"            | "aaaa" |
| "aaaa"                 | "aaaa" |
| "aaaa!bbbb!ccccc!dddd" | "aaaa" |
| "aaaa!"                | "aaaa" |
| "!aaaaa"               | ""     |
+------------------------+--------+    
Run Code Online (Sandbox Code Playgroud)

我尝试以下无济于事:

^[^!]*$(!)

python regex regex-negation regex-group

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

使用 Regex/VBA 获取每个以点结尾的单词

在 Office 2019 Excel 电子表格中。我试图从任何指定的单元格中提取最多 5 个以 ] 后的点结尾的单词。

示例文本:

一些文字[asred.] ost。|周一 - 里本(终极)很多。交流,中国。其他可能是长文本;科兰。

我预计:

OST。终极。很多。华。科兰。

我在网上找到了这个功能:

Public Function RegExtract(Txt As String, Pattern As String) As String

With CreateObject("vbscript.regexp")
    '.Global = True
    .Pattern = Pattern
    If .test(Txt) Then
        RegExtract = .Execute(Txt)(0)
    Else
        RegExtract = "No match found"
    End If
End With

End Function
Run Code Online (Sandbox Code Playgroud)

我从一个空单元格中调用它:

=RegExtract(D2; "([\]])(\s\w+[.]){0,5}")
Run Code Online (Sandbox Code Playgroud)

我的表情:

([\]])(\s\w+[.]){0,5}
Run Code Online (Sandbox Code Playgroud)

它返回:

] OST。

  1. 我无法去掉 ] ,因为 \K 在 Excel 中不起作用,因此需要找到有用位在文本块内开始的位置。

  2. 我不明白迭代器如何工作以获取“最多 5 次出现”。
    我预计第二组之后的 {0,5} 表示:重复前一组直到文本块末尾(或者直到您成功执行 5 次)。

--在 JdvD 接受记录答案后添加--

我使用这种模式来获取在第一次 …

regex excel vba regex-group

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

正则表达式,用于捕获字符串中的数字

我希望仅提取此“ =»”之后的数字,但我仍然保留其他一些文字:

正则表达式代码:

[^»]*[\d{1,}]$
Run Code Online (Sandbox Code Playgroud)

输入项

> login as: LOGIN SERVER@00.00.00.000's password: Last login: Thu May 23
> 15:51:49 2019 from 00.00.00.000 CREER AUTANT DE REPERTOIRES SOUS
> /NAME/NAME/NAME QU'IL Y A DE COMMERCANTS GERES. LE NOM DOIT ETRE LE NO
> DE COMMERCANT. CREER ENSUITE SOUS CHACUN D'EUX UN REPERTOIRE NAME/
> <SERVER>ps -fu NAME | grep exe | echo «resultat=»`wc -l` «resultat=»14
> <SERVER>
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

c# regex regex-group regex-lookarounds uipath

-3
推荐指数
1
解决办法
118
查看次数

.Net中的一个正则表达式在JavaScript中运行的路径上的意外匹配

澄清:我不是要求一种模式.我问为什么一个模式在PHP和JavaScript中工作但在.Net中不起作用.

我试图从路径获取底层文件夹.该模式适用于PHP和JavaScript,但在.Net中返回意外结果.我想了解为什么.Net会返回它返回的模式.

鉴于这条道路:

"C:\ 0级\ 1级\ level2的\ FILENAME.EXT"

我想要匹配

"级别2"

这是我正在使用的模式:(编辑器不断取出斜杠,所以这是一张图片:

正则表达式模式

我希望匹配的内容:

(第二级)

C#匹配的内容:

C:\ 0级\ 1级

为了完整性,这里是RegEx实例中的模式: VS模式

如何为.Net指定此模式以匹配底层文件夹?

.net c# regex regex-negation regex-group

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