Mam następujące ciągi, które chcę zachować i usunąć pozostałe:
uicomp-type="example-string"
uicomp-type='string-example'
Używam następującego wyrażenia regularnego, aby znaleźć te ciągi:
uicomp-type="(.*?)"|uicomp-type='(.*?)'
Jak wybrać ciągi inne niż te, które chcę zachować lub jakie jest przeciwieństwo powyższego wyrażenia regularnego?
Mam na myśli NOT uicomp-type="(.*?)"|uicomp-type='(.*?)'
EDYTOWAĆ:
Przykładowy zestaw danych:
"Div box" => '<div uicomp-type='div-stndalone' class="ddasset-div-box"></div>',
"HTML Code" => '<div uicomp-type='div-code' class="ddasset-html-box"></div>',
"Shortcode" => '<div uicomp-type="shortcode" class="ddasset-shortcode-box"><input uicomp-type="input-shortcode" type="text" name="" value="" class="shortcodepreviewer" placeholder="Insert your shortcode here!"/></div>',
"Features list" => '<ul uicomp-type="ul" class="adtdd_ul">
<li uicomp-type="li"><i uicomp-type="icon" class="mif-checkmark"></i> <dx uicomp-type="text" class="dxeditable"> Features item 1</dx></li>
<li uicomp-type="li"><i uicomp-type="icon" class="mif-checkmark"></i> <dx uicomp-type="text" class="dxeditable"> Features item 2</dx></li>
<li uicomp-type="li"><i uicomp-type="icon" class="mif-checkmark"></i> <dx uicomp-type="text" class="dxeditable"> Features item 3</dx></li>
<li uicomp-type="li"><i uicomp-type="icon" class="mif-checkmark"></i> <dx uicomp-type="text" class="dxeditable"> Features item 4</dx></li>
<li uicomp-type="li"><i uicomp-type="icon" class="mif-checkmark"></i> <dx uicomp-type="text" class="dxeditable"> Features item 5</dx></li>
<div class="clear"></div>
</ul>',
"Separator" => '<div uicomp-type="div" class="adt-dd-separator adt-dd-separator-k"><hr uicomp-type="hr-separator"></div>',
"Badges/ ribbon" => '<div uicomp-type="null" class="dd-ribbon">
<div uicomp-type="div-ribbon" class="dd-ribbon-inner"><span uicomp-type="text" class="dxeditable">POPULAR</span></div>
</div>',
(?!)
, ale nie można go kliknąć. Wzór można skrócić douicomp-type=["'](.*?)["']
btw.(?!)
i nie ma szczęścia!(?!.*uicomp-type=["'].*?["'])
jest najbliższy, jaki mam; ale zwraca też całą masę bezużytecznych dopasowań o zerowej długości. Czuję, że brakuje mi czegoś oczywistego!Odpowiedzi:
Nie jest to zwykłe wyrażenie regularne, ale szybkie makro może skopiować wszystkie wystąpienia do drugiej karty. Makra NP ++ są niesamowite, ale kilka dziwactw wymaga trochę kreatywności.
Następnie w oknie wyszukiwania kliknij „Policz”, co w twoim przykładzie zwróciło 25 wystąpień. Możesz więc „uruchomić makro wiele razy” (25).
źródło