我之前没有写过正则表达式,而且我的知识严重不足。我希望这里的专家能够帮助我使用C#中可以用来删除标记标记的正则表达式。
标记中包含以下开场标记:<AI>!
或<AH>!
或<AG>!
,并以另一个!
结束
示例:the quick brown <AI>!fox jumps! over the lazy dog!
删除标记后应为:the quick brown fox jumps over the lazy dog!
代码段:
NOT MORE THAN 85 % OF H<AH>!3!BO<AH>!3! CALCULATED ON THE DRY WEIGHT
- Uranium ores and pitchblende, and concentrates thereof, with a uranium content of more than 5 % by weight (<AI>!Euratom!)
- Monazite; urano-thorianite and other thorium ores and concentrates, with a thorium content of more than 20 % by weight (<AI>!Euratom!)
- - - - -94% or more, but not more than 98.5% of a-Al<AH>!2!O<AH>!3! -2% (+/-1.5%) of magnesium spinel, -1% (+/-0.6%) of yttrium oxide and -2% (+/-1.2%) of each lanthanum oxide and neodymium oxide with less than 50% of the total weight having a particle size of more than 10mm
- Activated alumina with a specific surface area of at least 350 m<AG>!2!g
IRON OXIDES AND HYDROXIDES; EARTH COLOURS CONTAINING 70 % OR MORE BY WEIGHT OF COMBINED IRON EVALUATED AS FE<AH>!2!O<AH>!3!:
- <AI>!o!-Xylene
- <AI>!m!-Xylene
- <AI>!p!-Xylene
- - - 1,6,7,8,9,14,15,16,17,18,18-Dodecachloropentcyclo[12.2.1.1<AG>!6,9!.0<AG>!2,13!.0<AG>!5,10!]octadeca-7,15-diene, (CAS RN 13560-89-9)
- Chlorobenzene, <AI>!o!-dichlorobenzene and <AI>!p!-dichlorobenzene
- - - Di- or tetrachlorotricyclo[8.2.2.2<AG>!4,7!]xadeca-1(12),4,6,10,13,15-hexaene, mixed isomers
- Butan-1-ol (<AI>!n!-butyl alcohol)
- - 2-Methylpropan-2-ol (<AI>!tert!-butyl alcohol)
- <AI>!n!-Butyl acetate
- <AI>!O!-Acetylsalicylic acid, its salts and esters
- - <AI>!O!-Acetylsalicylic acid (CAS RN 50-78-2)
- 1-Naphthylamine (<AH>!alpha!-naphthylamine), 2-naphthylamine (<AI>!beta!-naphthylamine) and their derivatives; salts thereof
- <AI>!o!-, <AG>!m!-, <AH>!p!-Phenylenediamine, diaminotoluenes, and their derivatives; salts thereof:
- - <AI>!o!-, <AI>!m!-, <AI>!p!-Phenylenediamine, diaminotoluenes and their halogenated, sulphonated, nitrated and nitrosated derivatives; salts thereof:
- - Indole, 3-methylindole (skatole), 6-allyl-6,7-dihydro-5<AI>!H!-dibenz[<AI>!c,e!] azepinne (azapetine), phenindamine (INN) and their salts; imipramine hydrochloride (INNM)
- Vitamin B<AH>!1! and its derivatives
- Vitamin B<AH>!2! and its derivatives
提前谢谢
答案 0 :(得分:5)
要使用的正则表达式将查找 A ,然后是 [GHI] 中的一个&lt;&gt;!。在发现之后,它会执行一个或多个( + )任何内容的懒惰搜索(由?表示)( 。)后跟一个感叹号。这是懒惰的,所以它不会寻找,直到它找到样本中的最后一个感叹号,它将停止在第一个感叹号并替换它找到的内容。然后,它将使用分组(模式中的括号)来存储标记中包含的值,并在替换时使用它( $ 1 表示第一组)。
var r = new Regex("<A[GHI]>!(.+?)!");
var actual = r.Replace(xml, "$1");
答案 1 :(得分:0)
要使用的正则表达式必须是这样的:
\<..\>!([^!]*)!
因为你必须匹配&lt; 两个字母&gt; ! 一系列没有!的角色,最后是一个!试。
然后用捕获的匹配(即括号之间的文本)替换匹配(与上面的表达式匹配的整个文本)。
答案 2 :(得分:0)
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\<A(G|H|I)\>\!([^\!]*)\!";
string input = "<AI>!n!-Butyl acetate the quick brown "
+ "<AI>!fox jumps! over the lazy dog!";
string replacement = "$2";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
Console.WriteLine("Original String: '{0}'", input);
Console.WriteLine("Replacement String: '{0}'", result);
}
}
Original String: '<AI>!n!-Butyl acetate the quick brown <AI>!fox jumps! over the lazy dog!'
Replacement String: 'n-Butyl acetate the quick brown fox jumps over the lazy dog!'