C# 如何使用正则表达式模式获取以下文本?
我随身带着以下文字C# 如何使用正则表达式模式获取以下文本?,c#,regex,C#,Regex,我随身带着以下文字 File <a class='ub link' data-menu-identifier='files' data-url-identifier='/files/detail/n0tlz'>Medical bills & LTA.xlsx</a> was attached to the case by {updatedby} on {updatedon} 这里m有值:/files/detail/n0tlz'> 但我只是想要'n0tlz',我
File <a class='ub link' data-menu-identifier='files' data-url-identifier='/files/detail/n0tlz'>Medical bills & LTA.xlsx</a> was attached to the case by {updatedby} on {updatedon}
这里m有值:/files/detail/n0tlz'>
但我只是想要'n0tlz',我觉得我离得太近了,最后一步就是需要获得代码值 如果
数据url标识符='/files/detail/n0tlz'>
始终包含一个'>。使你的现有
文件\/detail\/
进入文件\/detail\/'>
现在,要捕获特定值,可以使用一个简单的捕获组
(.*)
,它将捕获零次和无限次之间的任何字符
将这两种方法结合起来将产生文件\/detail\/(.*)>
编辑
但是我有:/files/detail/n0tlz'>我只想要'n0tlz',我能得到它吗
嗯,是的。或者更详细地说,你已经拥有它了
不要使用var
尝试定义类型本身。在这种情况下,这将是一个错误。看看这些属性,你会发现它包含了比整个匹配更多的内容
组将包含您的值
为什么不使用HTML/XML解析器来获取属性值,而只使用
Split
来获取所需的值呢?必须使用regex吗?因为像yourstring.Split(“/”).Last()
这样简单的东西可以为您解决这个问题,我需要在服务器端的这是db的列&我正在处理迁移任务..没错,但是我可以使用regex直接获得'n0tlz'吗?这是一个regex模式来获取值。可以直接使用我添加了一些说明,但似乎您自己已经找到了;)
// Extract The filecode
const string pattern = @"files\/detail\/(.*)'>";
// Instantiate the regular expression object.
var r = new Regex(pattern, RegexOptions.IgnoreCase);
// Match the regular expression pattern against a text string.
var m = r.Match(fileUpdate.UpdateText);
// Extract The filecode
const string pattern = @"files\/detail\/(.*)'>";
// Instantiate the regular expression object.
var r = new Regex(pattern, RegexOptions.IgnoreCase);
// Match the regular expression pattern against a text string.
var m = r.Match(fileUpdate.UpdateText);
if (m.Success && m.Groups.Count == 2 )
{
m.Groups[1].Value; // This is the expected result
}