首页 新闻 会员 周边

正则表达式的简单问题

0
悬赏园豆:10 [待解决问题]

字符串 12s341df34518s谷歌90
我想匹配结果是
12s34
1df345
18s谷歌90
该怎么写?
Regex.Matches("12s341df34518s谷歌90", @"1([\s\S]+)"); 不行
Regex.Matches("12s341df34518s谷歌90", @"1([\s\S]+?)");也不行

simadi的主页 simadi | 初学一级 | 园豆:134
提问于:2024-01-07 20:45
< >
分享
所有回答(6)
1

可以用这个正则:(1[^1]+)

dudu | 园豆:30925 (高人七级) | 2024-01-07 20:55

根据你的思路,可以用 1(\s|\S)+?(?=1|\b)

支持(0) 反对(0) dudu | 园豆:30925 (高人七级) | 2024-01-07 20:59

(?=1|\b) 表示 lookahead

支持(0) 反对(0) dudu | 园豆:30925 (高人七级) | 2024-01-07 21:00
-1

在C#的正则表达式中,\s 和 \S 匹配的字符范围有所不同。\s 匹配空白字符(例如空格、制表符、换行符等),而 \S 匹配任何非空白字符。

如果你想要匹配以"1"开头,后面跟着任意字符(包括非空白字符),直到遇到下一个数字或者字母为止的字符串,你可以使用以下的正则表达式:

csharp
Regex.Matches("12s341df34518s谷歌90", @"1([\d\W]+)");
这里,[\d\W]+ 的含义是匹配一个或多个数字(\d)或者非数字字符(\W)。

如果你想要匹配的字符串中包含字母和数字,并且这些字母和数字之间没有空白字符,你可以使用以下的正则表达式:

csharp
Regex.Matches("12s341df34518s谷歌90", @"1([A-Za-z0-9]+)");
在这个表达式中,[A-Za-z0-9]+ 匹配一个或多个字母或数字。这个正则表达式会忽略任何中间的空白字符。

请注意,正则表达式的行为可能会根据你使用的编程语言和正则表达式引擎有所不同。在某些情况下,你可能需要调整正则表达式以满足特定的需求。

玩屎的猪 | 园豆:59 (初学一级) | 2024-01-08 16:57
0

你可以使用正则表达式的非贪婪模式来匹配你的目标字符串。在正则表达式中,非贪婪模式可以通过在量词后面添加问号(?)来实现。你的正则表达式可以稍作修改:

csharp
Copy code
string input = "12s341df34518s谷歌90";
var matches = Regex.Matches(input, @"1([\s\S]+?)\d");
foreach (Match match in matches)
{
Console.WriteLine(match.Groups[1].Value);
}
这个正则表达式的意思是:

1:匹配字符 "1"。
([\s\S]+?):捕获任意字符(包括换行符)零次或多次,尽可能少地匹配。
\d:匹配一个数字字符。
这样你就可以得到你想要的结果。在上述代码中,match.Groups[1].Value 包含了符合你要求的子字符串。

上述代码的输出应该是:

Copy code
12s34
1df345
18s谷歌9
请注意,最后一个匹配 "18s谷歌9",因为它以数字 "9" 结尾,而不是 "90"。如果你希望包括末尾的数字 "0",可以调整正则表达式为:

csharp
Copy code
var matches = Regex.Matches(input, @"1([\s\S]+?)\d*");
这将匹配零个或多个数字字符。

Technologyforgood | 园豆:6170 (大侠五级) | 2024-01-08 18:54
1

var pattern = @"1([\s\S]+)";
var options = RegexOptions.Singleline;

var input = "12s341df34518s谷歌90";
var matches = Regex.Matches(input, pattern, options);

foreach (Match match in matches)
{
Console.WriteLine(match.Value);
}

jimeizy | 园豆:202 (菜鸟二级) | 2024-01-10 09:10
0

/1[^1]+(?!=1)/g 这样试试

_zhiqiu | 园豆:403 (菜鸟二级) | 2024-01-15 17:34
0

试一下这个: 1.+?[0,2-9]+
限制1开头,限制数字结尾(不包括1)

玖幽白 | 园豆:202 (菜鸟二级) | 2024-02-04 11:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册