在正则表达式方面我很缺乏经验 . 我想要做的是遍历一个字符串列表,并尝试找到具有某种模式的字符串 . 我感兴趣的字符串将采用_385826的形式_如何编写RegEx以匹配?我在尝试这个:
Regex expression = new Regex("***");
但这给了我一个错误 . parsing "***" - Quantifier {x,y} following nothing.
有人能指出我正确的方向吗?
我正在尝试遍历选择列表选项并将css类添加到相关的选项中 .
Regex expression = new Regex("***");
foreach (ListItem li in listItemCollection)
{
if (expression.IsMatch(li.Value))
li.Attributes.Add("class", "highlight1");
}
但这显然不起作用 .
任何帮助表示赞赏,〜在圣地亚哥
6 回答
如果您要做的只是匹配三个星号,为什么不使用string.Contains方法而不是正则表达式呢?
如果您要测试正则表达式,请获取测试应用程序 . Any of these将是一个良好的开端 . 我已经很长时间了Chris Sells's tester,但那里有很多 .
您需要转义星号,因为它是RegExp中的有效元字符 .
你应该试试这个正则表达式模式
这会找到
***{some text}***
如果你想在*之前的文本,你应该使用这个
^
- 输入的开头[\w\s]*
a-z,A-Z,0-9,_和空格中的任何字符,0次或更多次\*{3}
三个星号\{
匹配{
[^\}]*
除了}
0次或更多次以外的任何字符\}
匹配}
\*{3}
匹配三个星号尝试这样的事情:
*在正则表达式中具有特殊含义 .
如果您想匹配3个星号,请尝试
EDIT:
如果您只是想验证字符串是否包含"***",请查看bdukes' answer .