正则表达式匹配中文句子

08-23 文案句子 投稿:倾诉林

【第1句】: 正则表达式匹配中文,Python语句该怎么写

你好:

下面是我总结的一些正则表示的用法:

请参考:

## 总结

## ^ 匹配字符串的开始。

## $ 匹配字符串的结尾。

## \b 匹配一个单词的边界。

## \d 匹配任意数字。

## \D 匹配任意非数字字符。

## x? 匹配一个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。

## x* 匹配0次或者多次 x 字符。

## x+ 匹配1次或者多次 x 字符。

## x{n,m} 匹配 x 字符,至少 n 次,至多 m 次。

## (a|b|c) 要么匹配 a,要么匹配 b,要么匹配 c。

## (x) 一般情况下表示一个记忆组 (remembered group)。你可以利用 re.search 函数返回对

## 象的 groups() 函数获取它的值。

##正则表达式中的点号通常意味着 “匹配任意单字符”

【第2句】: 正则表达式匹配指定中文字符串

public void ShowStructure()

{

//要匹配的字符串

string text = "早上好aaa您好bbb大家好ddd……";

//正则表达式

string pattern = @"[\u4e00-\u9fff]+";

Regex r = new Regex(pattern);

//使用正则表达式匹配字符串,仅返回一次匹配结果

Match m = r.Match(text);

while (m.Success)

{

//显示匹配开始处的索引值和匹配到的值

System.Console.WriteLine("Match=[" + m + "]");

CaptureCollection cc = m.Captures;

foreach (Capture c in cc)

{

Console.WriteLine("\tCapture=[" + c + "]");

}

for (int i = 0; i < m.Groups.Count; i++)

{

Group group = m.Groups[i];

System.Console.WriteLine("\t\tGroups[{0}]=[{1}]", i, group);

for (int j = 0; j < group.Captures.Count; j++)

{

Capture capture = group.Captures[j];

Console.WriteLine("\t\t\tCaptures[{0}]=[{1}]", j, capture);

}

}

//进行下一次匹配.

m = m.NextMatch();

}

}

【第3句】: 正则表达式如何只匹配一个中文字符

汉字的表示和正则表达式引擎相关,不同引擎的写法不同,下面的写法适用于java引擎,或者一切以unicode来表示字符的引擎。

【第1句】:基本规格——针对汉字的一般集合(cp936,约等于GBK,共计20000多汉字)

[\u3007\u4E00-\u9FCB\uE815-\uE864]

【第2句】:扩充规格——针对多一些的汉字(支持CJK ExtA,共计接近30000汉字)

[\u3007\u3400-\u4DB5\u4E00-\u9FCB\uE815-\uE864]

【第3句】:豪华规格——针对更多的汉字(支持CJK ExtB、C、。。,共计76000多汉字)

([\u3007\u3400-\u4DB5\u4E00-\u9FCB\uE815-\uE864]|[\uD840-\uD87F][\uDC00-\uDFFF])

如下关于汉字在unicode中的区间,亦可供参考

声明:企算易所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系381046319@qq.com