社区
C#
帖子详情
谁能写个正则表达式程序分解出组名或组号及其该组的正则表达式?
金将军-金涨嵉
2006-10-23 06:15:05
比如正则表达式
(?<a>a(?<b>b)(c))(?<d>d)
能够分解得到
组1 (c)
组a (?<a>a(?<b>b)(c))
组b (?<b>b)
组d (?<d>d)
...全文
159
9
打赏
收藏
谁能写个正则表达式程序分解出组名或组号及其该组的正则表达式?
比如正则表达式 (?a(?b)(c))(?d) 能够分解得到 组1 (c) 组a (?a(?b)(c)) 组b (?b) 组d (?d)
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
9 条
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
打赏红包
jetxia
2006-10-24
打赏
举报
回复
纯顶
金将军-金涨嵉
2006-10-24
打赏
举报
回复
@petshop4(什么都不会 正则刚够60分)
怎样作 ?
petshop4
2006-10-24
打赏
举报
回复
测试数据
(?<a>a(?<b>b)(c))(?<d>d)
正则:\([a-z]\)
结果:
*******************
(c)
正则:\(\?<([a-z])>[^(]*?\)
结果:
*******************
(?<b>b)
*******************
(?<d>d)
正则:\(\?<([a-z])>.*?(?:\(.*?\))+.*?\)
结果:
*******************
(?<a>a(?<b>b)(c))
petshop4
2006-10-24
打赏
举报
回复
我也想弄个出来 每次我的正则测试程序都是显示组1组2的
弄不出名字来 十分不爽
金将军-金涨嵉
2006-10-24
打赏
举报
回复
其实我是想做成通用的,不仅是单单适用这个正则表达式,不过也给了一些提示,再研究一下。
petshop4
2006-10-24
打赏
举报
回复
怎样作 ?
=========
什么意思?
我的做法是要用3个正则表达式分别匹配
1个正则难度挺大
flowersea312
2006-10-24
打赏
举报
回复
帮顶
股神
2006-10-23
打赏
举报
回复
up
winner2050
2006-10-23
打赏
举报
回复
参考
string pattern = @"<TW:TopWeekDown\s*Top\s*=\s*(\d*?)[\s]Title\s*=\s*(\d*?)\s*>([\S\s]*?)</TW:TopWeekDown>";
Match match = new Regex(pattern, RegexOptions.IgnoreCase).Match(InPutMode);
match.Groups[**].Value ;
相关推荐
正则表达式
的捕获组与非捕获组
在工作中,经常会用到
正则表达式
,这篇文章并不是讲
正则表达式
的基本使用,则是侧重讲
正则表达式
的捕获组与非捕获组。 所用语言均为Java 。 一、捕获组 捕获组,通过括号将
正则表达式
括起来,
正则表达式
匹配成功后,可以通过
组号
来获取相应的匹配内容。如,我们想获取数字中的整数部分和小数部分,可以用这样的
正则表达式
。 @Test public void testCaptureGroup(){ String regex = "(\\d+)\\.(\\d+)";
正则表达式
(?p
group)
正则表达式
(?pgroup)这个正则的意思是,给匹配到的数字命名一个组名name,这个组名必须是唯一的。 另一种是正则匹配使用group(组名)可以获取到这个组名下的数据,同group(1),group(2)类似 eg: (?p\d{2})匹配带有两个数字的
正则表达式
模式: 模式字符串使用特殊的语法来表示一个
正则表达式
: 字母和数字表示他们自身。一个
正则表达式
模式中的字母和数...
python里使用
正则表达式
的组匹配通过名称自引用
在前学习过
正则表达式
的组可以通过
组号
来自引用,看起来使用很简单的样子,其实它还是不容易维护的,比如你某一天需要在这个
正则表达式
里插入一个组时,就发现后面的
组号
全打乱了,因此需要一个一个地更改
组号
,有没有更容易维护的方式呢?是有的,就是使用组名称来引用。如下面的例子:#python 3.6 #蔡军生 #http://blog.csdn.net/caimouse/article/details/51
正则表达式
问号 冒号 ?:使用
正则表达式
问号 冒号 ?:使用 (?: pattern)是非捕获型括号 匹配pattern,但不捕获匹配结果。 (pattern )是捕获型括号。 匹配pattern,匹配pattern并捕获结果,自动获取
组号
(? pattern ) 匹配pattern, 匹配pattern并捕获结果,设置name为组名 使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它
程序
中作进一步的处理。默认情况下,每个捕获组会自动拥有一个
组号
,规则是:从左向右,以分组的左括号
正则表达式
中的反向引用
反向引用概念 反向引用:分组后,每个组有对应的
组号
,可以使用转义符+
组号
来引用对应组的值 如 (\d)(\d)\1\2:\1代表引用第一个组的值,\2代表引用第二个组的值,这个匹配模式代表匹配的字符串第一位和第三位相同,第二位和第四位相同 反向引用既可以在
正则表达式
内部使用,也可以在
正则表达式
外部使用。内部反向引用使用 \+
组号
方式,外部反向引用使用 $+
组号
方式 package com.ftn.regexp; import java.util.regex.Matcher; import java.u
发帖
C#
C#
.NET技术 C#
复制链接
扫一扫
10.8w+
社区成员
64.2w+
社区内容
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2006-10-23 06:15
社区公告
让您成为最强悍的C#开发者