java
  • regex
  • 2013-02-15 5 views 0 likes 
    0

    Итак, у меня есть это java String.Regex: как заменить эту строку в java?

    <script type="text/javascript" 
        src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> 
    </script> 
    <script type='text/x-mathjax-config'> 
        MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}}); 
    </script> 
    

    , что я хочу заменить "".

    То, что я делаю это:

    .replaceAll("(<img[^>]*>)|(<script[^>]*>)", "") 
    

    , но это не снимает MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}}); между тегами сценария.

    выше регулярное выражение ищет все тег <img> также и заменяет их "", то же самое я хочу для того чтобы достигнуть для выше показаны <script> тегов и всех между ними также.

    ответ

    1

    Это, кажется, работает

    str = Pattern.compile("<img .+?</img>|<script .+?</script>", Pattern.DOTALL).matcher(str).replaceAll(""); 
    

    Обратите внимание, что ул имеет CRLF это почему DOTALL

    +0

    Что это такое, строка java. – Prateek

    +0

    Да, это ваш текст, я изменил его на str, чтобы быть более четким. –

    +0

    Это сработало для меня спасибо, что я могу добавить больше регулярных выражений с символом '|', если я хочу заменить
    , а затем '' |

    0
    If you want to replace part of the string between the tags to replace then try this. 
    
    string = string.replaceAll("(<script>.*?)Here is our keyword which should be replaced(.*?</script>)","$1Replaced with:$2"); 
    

    Если вы хотите заменить все между тегами с «» попробуйте это.

    s = s.replaceAll("(<script>).*?(</script>)",""); 
    
    Смежные вопросы