我不是RegEx专家,我尽力使用http://gskinner.com/RegExr/,但我找不到合适的解决方案。这是我的问题:
我有一堆像
这样的ID的HTML文件<span id="listing0.title.moreinfo">bla</span>
还有其他ID没有。
<span id="listing0">bla</span>
我的问题: 如何将所有。替换为 - ?不应更改没有。的ID。
我确定这不是最好的解决方案,但这就是我找到所有ID的方式:
/( id=")(([\w\d])*)(.*([\w\d])*)"/gi
答案 0 :(得分:1)
我用PHP这样做,但过程是一样的。
// pattern to find all the ids
$reg = '/id="([^"]+)"/';
$str = '<span id="listing0.title.moreinfo">bla</span>';
// find all the ids. second first subgroup will contain the id string.
preg_match($reg, $str, $m);
// replace . with - with simple string replace function.
echo str_replace('/\./', '-', $m[0]);
标准id字符串查找正则表达式为/id="([^"]+)"/gi
答案 1 :(得分:0)
这适用于C#:
var html = @"<span id=""listing0.title.moreinfo"">bla</span>
<span id=""listing0"">bla</span>";
var pattern = @"id=("".*?"")";
html = Regex.Replace(html, pattern, delegate(Match match)
{
return match.Value.Replace('.', '-');
});
Console.WriteLine(html);
Console.ReadKey();
答案 2 :(得分:0)
使用Notepad ++,
id="(\w+)\.(\w+)\.(\w+)"
id="\1-\2-\3"