1

私はVB.NETでこれらの正規表現を使用していますが、それらはすべて個別に機能します:

texto = "ola <a href=""http://www.aiaia.pt"">coisas</a> tas <object> zborgind </object> bom <iframe src=""http://www.uiuiuiuiiu.pt""></iframe> hoje? <center>qq coisa</center> Já acabou, <script>document.write(""oi"")</script> ...agora!"
Dim regEx2 As New Regex("<a[^>]*>", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
texto = regEx2.Replace(texto, String.Empty)
regEx2 = New Regex("</a[^>]*>", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
texto = regEx2.Replace(texto, String.Empty)
regEx2 = New Regex("<object.*?>.*</object\s*?>", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
texto = regEx2.Replace(texto, String.Empty)
regEx2 = New Regex("<iframe.*?>.*</iframe\s*?>", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
texto = regEx2.Replace(texto, String.Empty)
regEx2 = New Regex("<center[^>]*>", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
texto = regEx2.Replace(texto, String.Empty)
regEx2 = New Regex("</center[^>]*>", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
texto = regEx2.Replace(texto, String.Empty)
regEx2 = New Regex("<script[^>]*>([\w\W]*?)</script>", RegexOptions.IgnoreCase Or RegexOptions.Multiline)
texto = regEx2.Replace(texto, String.Empty)

それらすべてを 1 つの式に結合するにはどうすればよいですか?

私はこれを試して、それらを1つに結合しました:

Dim texto2 As String = "ola <a href=""http://www.aiaia.pt"">coisas</a> tas <object> zborgind </object> bom <iframe src=""http://www.uiuiuiuiiu.pt""></iframe> hoje? <center>qq coisa</center> Já acabou, <script>document.write(""oi"")</script> ...agora!"

Dim re As New Regex( _
    "^<a[^>]*>$" & _
    "^</a[^>]*>$" & _
    "^<object.*?>.*</object\s*?>$" & _
    "^<iframe.*?>.*</iframe\s*?>$" & _
    "^<center[^>]*>$" & _
    "^</center[^>]*>$" & _
    "^<script[^>]*>([\w\W]*?)</script>$", _
    RegexOptions.IgnoreCase Or RegexOptions.Multiline _
)

しかし、うまくいきません。手伝って頂けますか?前もって感謝します。

4

1 に答える 1

0

^行の開始と終了に$一致します。正規表現のサブパターンを区切りません。|代わりに使用してください。左右どちらでも似合います。

Dim re As New Regex( _
    "<a[^>]*>" & _
    "|</a[^>]*>" & _
    "|<object.*?>.*</object\s*?>" & _
    "|<iframe.*?>.*</iframe\s*?>" & _
    "|<center[^>]*>" & _
    "|</center[^>]*>" & _
    "|<script[^>]*>([\w\W]*?)</script>", _
    RegexOptions.IgnoreCase Or RegexOptions.Multiline _
)
于 2013-10-25T12:21:59.477 に答える