我有一个字符串:
zabcd1>abcf2 abcg3"abch,abcj4
我想得到:
- abcd1
- abcf2
- abcg3
- abcj4
获取前缀为(abc)
的字符串,后缀为数字,且只有一个组(abc)
。字符d, f, g, h, j
可以由复杂的字符串替换,例如:
t\t img src=\"img\/x.gif\" class=\"iRe
有人可以帮助我吗?
答案 0 :(得分:3)
好像你不想要abch,abcj4
,因为它包含由非单词字符分隔的两个部分。你很亲密:
abc\w*\d
\w
包含所有“字”字符。它相当于[A-Za-z0-9_]
。请参阅http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet。
如果您想更具体一点,可以使用[A-Za-z0-9_]
,这是字符类并删除部分(例如_
或{{1 }})不适用于你的比赛。
答案 1 :(得分:2)
您的正则表达式与abc
匹配,后跟零或更多内容非贪婪.*?
后跟数字\d
abc.*?\d
您希望匹配abc
后跟零个或多个(可能)小写字母[a-z]*
,后跟数字\d
abc[a-z]*\d
答案 2 :(得分:0)
这样的事情对你有用吗?它正在寻找abc,一组可选的字符,不能是逗号或数字,后跟一个数字。
(abc[^,\d]*\d)
答案 3 :(得分:0)
你应该使用*或?量词,而不是两者。
如果你想检查0或1个字符,你应该使用?那么你的正则表达式会变成:
abc.?\d
。当然会匹配任何东西,而不仅仅是字母,所以如果你想让第四个字符只是一个字母,那么你会想要这样的东西:
abc[a-zA-Z]?\d