如何正确使用正则表达式?为什么不是';这不管用

本文关键字:不管 为什么不 何正确 正则表达式 | 更新日期: 2023-09-27 18:09:51

可能重复:
RegEx匹配除XHTML自带标签之外的开放标签

string regex = "<Name[.''s]*>[.]*s[.]*</Name>";
string source = "<Name xmlns='"http://xml.web.asdf.com'">Session</Name>";

bool hit = System.Text.RegularExpressions.Regex.IsMatch(
                                source,
                                regex,
                                System.Text.RegularExpressions.RegexOptions.IgnoreCase
                            );

为什么hit为false?我正在尝试查找名称中包含's'的任何Name XML字段。我不明白可能出了什么问题。

谢谢!

如何正确使用正则表达式?为什么不是';这不管用

您在字符类中使用.,它的字面意思是.,我认为您的意思是在任何字符的意义上使用-所以.*而不是[.]*

string regex = "<Name(.|''s)*>.*s.*</Name>";

使用XPath,这可以像/Name[contains(.,'s')] 一样简单