タグコンテンツを一致させることは、同時に先頭と末尾の空白を省略します
-
26-09-2019 - |
質問
私は、タグの内容全体に一致する正規表現を書き込もうとしています。これが入力の沸騰した例です。
<tag
>
文章
</tag
>
私は次のもののみを一致させたいです(試合の前後の白人がどのようにトリミングされたかに注意してください):
"文章"
私は現在、.NET(PowerShell)でこのREGEXを使用しようとしています。
(?<=<tag>(\s)*).*?(?=(\s)*</tag>)
ただし、この正規表現は、「テキスト」とタグの内側の主要な空白と一致していますが、これは望ましくありません。 regexを修正して、期待どおりに機能するにはどうすればよいですか?
解決
LookAroundsをドロップします。彼らは、仕事を必要以上に複雑にします。代わりに、キャプチャグループを使用して、必要な部品を選択します。
<tag>\s*(.*?)\s*</tag>
あなたが望む部分は利用可能です $matches[1]
.
他のヒント
代わりにパーサーを使用します。
また: XHTMLの自己完結型タグを除くRegexは、オープンタグを一致させます
それがあなたを説得しないなら、あなたの表現の途中でドットを使用しないでください。英数字エスケープを使用します。あなたのドットは白人を消費しています。代わりに w(私は思う)を使用します。
これらの正規表現を使用して、トレーリングと主要な白人を剥ぎ取ります。 /^\s+/
と /\s+$/
test = "<tag> test </tag>";
string pattern3 = @"<tag>(.*?)</tag>";
Console.WriteLine("{0}", Regex.Match(test,pattern3).Groups[1].Value.Trim());
所属していません StackOverflow