I have text like the following:
Hallo ich bin Pra Lebo, | (_S ich wurde 1974 in Südafrika geboren, S_) | (_B <marker
tag="1">denn</marker> meine Eltern, | beide Angehörige der Komtoru, | sind nach dem
Umsturz ´73 ausgewandert. B_) | Trotz meiner auswärtigen Herkunft fühle ich mich Akritiri immer
noch sehr verbunden und ich hoffe, | dass wir heute eine gute Entscheidung treffen können. | Ich
plädiere für ein parlamentarisches Regierungssystem, | damit die Kontrolle besser gegeben ist und
damit so schreckliche Ereignisse sich nie wieder wiederholen können. |
I would like to a regex to match strings inside (_S ... S_), another regex to match strings inside (_B ...B_) and a third one to match those spans that are not inside any of the above. Ideally, I would have three regexes. How would one go about doing this?
The first two problems are much easier and have been answered, however the third problem still remains. I need to match the largest strings not surrounded by any opening or closing round brackets. Any help is appreciated.
You can use regex (?<=\(_S)((.|\n)*?)(?=S_\)) for getting string inside (_S and S_)
Demo
Similarly you can use regex (?<=\(_B)((.|\n)*?)(?=B_\)) for getting string inside (_B and B_)
Demo2
To match these two , you can use :
(?:(?<=\(_S)((?:.|\n)*?)(?=S_\)))|(?:(?<=\(_B)((?:.|\n)*?)(?=B_\)))
Demo3
To match string that are not enclosed in brackets , you can use something like this :
(((?:^)|(?<=\)))(?:[^(])*)
Demo4
Related
Today, I was very happy that I get a solution for my first post here: Find and replace a specific reference pattern by a regular expression.
I'd like to replace following entries (and many more of these types in my document), so that the (number 1,2,3,4 or 5, only if present, plus) the first three alpha-letters is written in the bracket after textit. The initial expression has to be appended.
Input:
\nobreakword{(vgl. 1. Johannes 4,16)}
\nobreakword{(vgl. Daniel 4,15.17.32f.)}
\nobreakword{(vgl. 2. Könige 7,7)}
=> Output:
\index[bibel]{#1. Johannes!\textit{1Joh 4,16}}\nobreakword{(vgl. 1. Johannes 4,16)}
\index[bibel]{#Daniel!\textit{Dan 4,15.17.32f.}}\nobreakword{(vgl. Daniel 4,15.17.32f.)}
\index[bibel]{#2. Könige!\textit{2Könige 7,7}}\nobreakword{(vgl. 2. Könige 7,7)}
I have also ä/ö/ü characters inside the brackets.
I'd like to include patterns in which the numerical part is written on the next line (because of copy paste) there is an ENTER (space/many blank characters) between the text and numbers.
\nobreakword{(vgl.
1. Korinther 13,4-7.8-12)} => \index[bibel]{#1. Korinther!\textit{1Kor 13,4-7.8-12}}\nobreakword{(vgl. 1. Korinther 13,4-7.8-12)}
\nobreakword{(vgl. 1.
Korinther 13,4-7.8-12)} => \index[bibel]{#1. Korinther!\textit{1Kor 13,4-7.8-12}}\nobreakword{(vgl. 1. Korinther 13,4-7.8-12)}
\nobreakword{(vgl. 1. Korinther
13,4-7.8-12)} => \index[bibel]{#1. Korinther!\textit{1Kor 13,4-7.8-12}}\nobreakword{(vgl. 1. Korinther 13,4-7.8-12)}
I have other text which should not be changed:
\index[stichwort]{Begriffe!Zeichen} => \index[stichwort]{Begriffe!Zeichen}
\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Personen!Abraham} => \index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Personen!Abraham}
If possible I'd like again to use https://regex101.com
I tried (without success):
\\nobreakword{(vgl. (\d+)(?:\.\s+))?(.{3})[\s\S]*?([a-z0-9.,-]+)}
Is it possible to use a single search pattern + single replace pattern with regular expression to replace all of the examples in one step?
EDIT
All names "Johannes", "Daniel", "Könige", "Korinther" etc. are at least 3 characters long.
I like to input following test string:
\chapter{Gottes Liebesbeweis an uns Menschen}
\begin{flushright}\footnotesize\textit{ursprünglicher Beitrag vom 29. April 2014 überarbeitet}\end{flushright}
- Gott ist Liebe. \nobreakword{(vgl. 1. Johannes 4,16)}\\
- Jesus Christus ist der Erstgeborene der gesamten Schöpfung. (vgl. Kolosser 1,15-17) \index[bibel]{51#Kolosser!\textit{Kol 1,15-17}}
\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Erstgeburt/Erstgeborener}\\
- Im Anfang, nachdem Jesus war, schuf Gott Himmel und Erde. (vgl.
1. Mose 1,1)\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Himmel}\\
- Liebe braucht ein Gegenüber: Gott hat den Menschen geschaffen nach
dem Bild von Gott, der fähig war, Liebe zu empfinden und zurückzulieben.
\nobreakword{(vgl. 1. Mose 1,26)}\\
- Echte Liebe kann nur bedingungslos sein und muss dem Gegenüber erlauben,
sich gegen die Liebe zu entscheiden. \nobreakword{(vgl. 1. Korinther 13,4-7)}\\
- Gott erwählte Jesus bereits vor Erschaffung des Menschen, weil ER
bereits zu Anbeginn der Zeit wusste, dass alle Menschen Unrecht tun
werden und Rettung benötigen. \nobreakword{(vgl. Epheser 1,3-4)}
\index[stichwort]{Begriffe!Gerechtigkeit/Gerechtsprechung/Gerechte/ \newline Rechtfertigung}\\
- Gott kann alles tun, was ER tun möchte \nobreakword{(vgl. Daniel 4,32)}\\
- Gott erlaubt jedem seiner Geschöpfe die Entscheidung, ob es mit
IHM - genauer: in IHM - leben möchte oder nicht: Ein Engel Gottes
in niedriger Stellung in einem der Himmel wollte sich dem Allerhöchsten
gleich machen in dem dieser Engel zum einen Himmel emporsteigt und
ist bei diesem Vorgehen hinabgestürzt. \nobreakword{(vgl. Jesaja 14,12-14)}\\
- Liebe ist bereit ein Risiko einzugehen: Gott überlässt seinen Geschöpfe
gewisse Entscheidungen. \nobreakword{(vgl. 1. Mose 2,16-17)}\\
- Der gefallene Engel hatte die Macht Adam und Eva zu versuchen. (vgl.
1. Mose 3,1)\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Personen!Adam}\\
- Adam und Eva wollten sein wie Gott, sie wollten dieselbe Erkenntnis
haben wie Gott. \nobreakword{(vgl. 1.Mose 3,5)}\\
- Gottes Gedanken, Wege, Weisheit und Erkenntnis sind unbeschreibbar
viel grösser als die unseren. \nobreakword{(vgl. Römer 11,33)}\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Weg}\\
- Gott lässt sich nicht über eine bestimmte Anzahl von Bildern definieren;
Gott spricht: "Ich bin, der ich bin".
\nobreakword{(vgl. 2. Mose 3,14)}\\
- Wir haben uns vor Gott getrennt, weil wir selbst unabhängig sein
wollten, anstatt IHM ganz zu vertrauen und gehorchen. \nobreakword{(vgl. Römer 3,12)}\\
- Als Folge des Sündenfalls im Garten Eden kam der Tod. \nobreakword{(vgl. Römer 6,23)}\\
- Die Schöpfungsordnung, dass der Mensch und die Tiere sich von Pflanzen
ernähren sollte wurde zerstört. \nobreakword{(vgl. 1. Mose 1,29-30)}\\
- Adam und Eva wurden durch den Ungehorsam Gott gegenüber der Sünde
Sklave der Sünde. \nobreakword{(vgl. Johannes 8,34)}\\
- Die Bosheit der Nachkommen Adam und Eva nahm immer weiter zu, dass
sich nach meiner Auslegung gefallene Engel Gottes mehreren Frauen
paarten und ihnen Riesen gebaren, wonach auch Gottes Gericht - die
Sintflut - kam. \nobreakword{(vgl. 1. Mose 6, 1-7)} \index[stichwort]{Begriffe!Zorn/Gericht/Vergeltung/Hölle/Tod}\index[stichwort]{Bilder [wörtl./bildhaft:Gleichnis,Symbol/beides]!Sintflut}\\
- Alle Menschen sind schuldig geworden, und werden durch den Glauben
an IHN ohne Verdienst gerecht gesprochen. \nobreakword{(vgl. Römer 3,23-28)}
\index[stichwort]{Begriffe!Gerechtigkeit/Gerechtsprechung/Gerechte/ \newline Rechtfertigung}\\
- Jeder Mensch kommt schuldig zur Welt. \nobreakword{\nobreakword{(vgl. Psalm 51,7)}}\\
- Ein Gläubiger darf bei verstorbenen Säuglingen die Hoffnung haben
nach dem irdischen Leben wieder bei diesem Menschen zu sein, selbst
wenn der Säugling zu Lebzeiten nicht die Möglichkeit hatte sich für
oder gegen Gott zu entscheiden. \nobreakword{(vgl. 2. Samuel 12,21-23)}\\
- Gott ist vollkommen gerecht. \nobreakword{(vgl. 5. Mose 32,4)}\index[stichwort]{Begriffe!Gerechtigkeit/Gerechtsprechung/Gerechte/ \newline Rechtfertigung}\\
- Gott kann keine Gemeinschaft mit Sündern haben, sodass es zwischen
IHM und den Menschen eine Trennung geben musste. \nobreakword{\nobreakword{(vgl. Jesaja 59,2)}}\\
- Gott möchte eine persönliche Beziehung zu uns Menschen haben. \nobreakword{(vgl.
Johannes 17,3)}\\
The regex:
\\nobreakword\{\(vgl\.\s+(([0-9]*)\.\s+)?((\S\S\S)\S*)\s+([^)]*)\)\}
And the replacement:
\\index[bibel]{#\1 \3!\\textit{\2\4 \5}}\0
On regex101 here.
In general, though, this is a terrible way of fixing your references in Latex. You should instead define functions which produce the correct output, so you have a centralized place to edit the formatting when your requirements change.
Your approach was correct.. except for few modifications. You can use :
(\\nobreakword{\(vgl\.\s*((\d+)(?:\.\s+))?((.{3}).+?\b)[\s\S]*?([a-z0-9.,-]+)\)})
and replace with \\index[bibel]{#$2$4!\\textit{$3$5 $6}}$1
See DEMO
string_1
< p class="paraind">< i>Erstens werden kulturelle Defizite bzw. ein geringes kulturelles Kapital der Migrantenfamilien angenommen, das unter Bezugnahme auf das kultursoziologisch begründete BORDIEU’sche < i>Habituskonzept< /i> und seine These der ‚kulturellen Passung‘ wegen der angenommenen Distanz der Migrantenfamilien zur deutschen (Mittelschicht-)Kultur für geringe Bildungschancen von Migrantenkinder verantwortlich sei. BORDIEU und PASSERON benutzen für diesen Vergleich des familiären kulturellen Kapitals mit dem der < i>Mittelschichtinstitution< /i>< a id="ch1_fn18" href="chapter1.html#cch1_fn18">< sup>18< /sup>< /a> der Schule den durchaus umstrittenen Begriff der ‚kulturellen Passung‘ (1971). Der Erklärungsansatz der kulturellen Herkunft als Ursache für Bildungs(miss)erfolg erscheint deswegen prinzipiell umstritten und quasiwissenschaftlich, weil viele der Herkunftskultur zugeschriebenen Eigenschaften sich oftmals als soziale Faktoren entpuppen, und weil die Unterstellung einer pauschal defizitären Lebenslage, Kultur und Sprachvermögens nicht-deutscher Familien auf eine kulturalistischessentialistische, wenn nicht sogar diskriminierende Haltung verweist.< /p>
string_2
begründete BORDIEU’sche Habituskonzept und seine These der ‚kulturellen
You can see that string_2 contents match with string_1 (highlighted text) but only difference is < i> tag in string_1, So I can not match these two strings
I want to create all the tags from string_1 to its corresponding texts in string_2 to match both string,
Kindly somebody give any idea or solution for this
A less restrictive version of my regex solution to your previous question can solve this:
use strict;
use warnings;
my $string_1 = do {local $/; <DATA>};
my $string_2 = "begründete BORDIEU’sche Habituskonzept und seine These der ‚kulturellen";
# Build a regex to match HTML interjected at whitespace
my $string2_re = join '(?:\s+|<.*?>)+', map quotemeta, split ' ', $string_2;
if ($string_1 =~ /($string2_re)/) {
print "Matching = '$1'";
}
__DATA__
< p class="paraind">< i>Erstens werden kulturelle Defizite bzw. ein geringes kulturelles Kapital der Migrantenfamilien angenommen, das unter Bezugnahme auf das kultursoziologisch begründete BORDIEU’sche < i>Habituskonzept< /i> und seine These der ‚kulturellen Passung‘ wegen der angenommenen Distanz der Migrantenfamilien zur deutschen (Mittelschicht-)Kultur für geringe Bildungschancen von Migrantenkinder verantwortlich sei. BORDIEU und PASSERON benutzen für diesen Vergleich des familiären kulturellen Kapitals mit dem der < i>Mittelschichtinstitution< /i>< a id="ch1_fn18" href="chapter1.html#cch1_fn18">< sup>18< /sup>< /a> der Schule den durchaus umstrittenen Begriff der ‚kulturellen Passung‘ (1971). Der Erklärungsansatz der kulturellen Herkunft als Ursache für Bildungs(miss)erfolg erscheint deswegen prinzipiell umstritten und quasiwissenschaftlich, weil viele der Herkunftskultur zugeschriebenen Eigenschaften sich oftmals als soziale Faktoren entpuppen, und weil die Unterstellung einer pauschal defizitären Lebenslage, Kultur und Sprachvermögens nicht-deutscher Familien auf eine kulturalistischessentialistische, wenn nicht sogar diskriminierende Haltung verweist.< /p>
Outputs:
Matching = 'begründete BORDIEU’sche < i>Habituskonzept< /i> und seine These der ‚kulturellen'
My string_1 = "Noch befinden wir uns aber in der 1. Generation, so dass diese institutionalisierten Handlungsweisen nach wie vor durchschaubar und als menschliche Konstruktion ersichtlich sind. Der Institutionalisierungsvorgang endet erst im Zuge der <\i>Internalisierung</i> der Folgegeneration durch die (Primär)sozialisation, in der die kollektiven Wissensbestände als Teil der subjektiven Wirklichkeit verinnerlicht werden. Erst hierdurch werden die Institutionen als Teil einer absolut wahrgenommenen objektiven Wirklichkeit angesehen. Sie erhalten dadurch objektiven Charakter. Diesen Vorgang der Vergegenständlichung nennt Berger/Luckmann <\i>Objektivation</i>. Der Eindruck eines menschlichen Erzeugnisses verschwindet. Die Institutionen werden als naturgegebene, unhinterfragbare und nicht veränderbare faktische Gegebenheiten angesehen, als kollektiv geteilte Wissensbestände. Die Autorität der Institution an sich, die sich aus ihrer historisch bedingten Faktizität ergibt, sowie die Autorität der Bezugspersonen, die gesellschaftliche Institutionen, Normen und Verhaltensweisen übermitteln, führen dabei zu einem regelkonformen Handeln der Nachkommen (Berger/Luckmann <\sup>21</sup>2007, 62–72)."
My string_2 = "regelkonformen Handeln der Nachkommen (Berger/Luckmann 2007, 62–72)."
You can see the above two stings, that string_2 contents are available in string_1 but the only difference is HTML tags.
I want to match string_2 in string_1 and have to create/copy what are the tags inside in string_1 matching area to the string_2 contents.
Kindly anybody give any idea to solve this
Thanks
Vimal
You can try this code:
my #wordlist = split(/\s+/, $string_2);
s/([^\pN\pL])/sprintf("(?&sub)?%s(?&sub)?", quotemeta $1)/ge for #wordlist;
my $patterns = qr` (?(DEFINE)
(?<sctag> <(?!/)[^>]*+> ) # self closing tag
(?<fctag> </[^>]*+> ) # foreign closing tag
(?<comment> <!-- .*? --> )
(?<cdata> \Q<![CDATA[\E .*? ]]> )
(?<tag> <(\w++)[^>]*+> (?> [^<]++ | (?&all)
| (?!</\g{-1})(?&fctag) )*+ </\g{-1}> )
(?<all> \s++ | (?&tag) | (?&comment) | (?&cdata) | (?&sctag) )
(?<sub> (?> (?&all) | (?&fctag) )++ )
) `xsi;
my $search = join '(?&sub)', #wordlist;
if ($content =~ /$patterns (?<res>$search?)/xsi) {
print "\n$+{res}";
} else {
print "\nnot found";
}
The idea is to split string_2 on white characters to obtain a wordlist. Each character in the wordlist that is not a letter or a digit is escaped (if needed) and surrounded with an optional reference to the subpattern (?&all)?. Then all items are joined with (?&all).
However there is probably a cleaner way using an html parser.
The following script splits the search string on whitespace and then inserts a simplified pattern for random HTML between the words:
use strict;
use warnings;
my $string_1 = do {local $/; <DATA>};
my $string_2 = "regelkonformen Handeln der Nachkommen (Berger/Luckmann 2007, 62–72).";
# Build a regex to match HTML interjected at whitespace
my $string2_re = join '(?:\s+|<(\w+)\b.*?</\g{-1}>)+', map quotemeta, split ' ', $string_2;
if ($string_1 =~ /($string2_re)/) {
print "Matching = '$1'";
}
__DATA__
Noch befinden wir uns aber in der 1. Generation,
so dass diese institutionalisierten Handlungsweisen nach wie vor durchschaubar
und als menschliche Konstruktion ersichtlich sind. Der Institutionalisierungsvorgang
endet erst im Zuge der <i>Internalisierung</i> der Folgegeneration durch die
(Primär)sozialisation, in der die kollektiven Wissensbestände als Teil
der subjektiven Wirklichkeit verinnerlicht werden. Erst hierdurch werden die Institutionen
als Teil einer absolut wahrgenommenen objektiven Wirklichkeit angesehen. Sie erhalten
dadurch objektiven Charakter. Diesen Vorgang der Vergegenständlichung nennt
Berger/Luckmann <i>Objektivation</i>. Der Eindruck eines menschlichen Erzeugnisses
verschwindet. Die Institutionen werden als naturgegebene, unhinterfragbare und nicht
veränderbare faktische Gegebenheiten angesehen, als kollektiv geteilte
Wissensbestände. Die Autorität der Institution an sich, die sich aus ihrer
historisch bedingten Faktizität ergibt, sowie die Autorität der
Bezugspersonen, die gesellschaftliche Institutionen, Normen und Verhaltensweisen
übermitteln, führen dabei zu
einem regelkonformen Handeln der <a sdj="asdas"><sup>saddfsdfsad</sup></a> Nachkommen (Berger/Luckmann <sup>21</sup>2007, 62–72).
Outputs:
Matching = 'regelkonformen Handeln der <a sdj="asdas"><sup>saddfsdfsad</sup></a> Nachkommen (Berger/Luckmann <sup>21</sup>2007, 62–72).'
Note: I answered your cross-post yesterday: How to create tags from one content to another content using PERL. If you're going to spam the internet looking for assistance, don't forget to check back to see if someone responds.
I would do it in two parts: finding and replacing.
1: find match, regardless of HTML tags (easy)
my $string_1="your big string <H1>to</H1> found here";
my $string_2="string to found";
my $match_str = $string_1;
#cleanup HTML tags for matching
$match_str =~ s!<[^>]*>!!gis;
#check if match could be found
if ($match_str =~ m!$string_2!i){
print "$string_2 found\n";
}
2: Try to extract the original string (hard). This may works.
use Data::Dumper;
my $string_1="your big string <H1>to</H1> found here";
my $string_2="string to found";
my $se_string_2 = $string_2;
### replace every space with (?:\s*<[^>]*>\s*)+
$se_string_2 =~ s! !\(\?:\\s\*\<\[\^>\]\*\>\\s\*\)\+!gis;
print Dumper( $string_1,$string_2,$se_string_2);
#check if match could be found
while ($string_1 =~ s!($se_string_2)!!i){
print "$string_2 found, string with tags: $1\n";
}
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
my string is :
<p class="paraind">Leo Frobenius und Johan Huizinga sehen wiederum in der Analogie von Fest und Spiel „das Zusammengeben von strenger Bestimmtheit und echter Freiheit“.<a id="cein_fn29" href="einleitung.html#ein_fn29"><sup>29</sup></a> Die rituelle Regelhaftigkeit einerseits und die Absenz des gewöhnlichen Lebens andererseits unterstützen den antipodischen Gehalt dieser beiden Kulturphänomene, wobei das zweite Element auf den kompensatorischen Charakter des Festlichen verweist: Indem der Alltag im Festgeschehen periodisch durchbrochen wird, wird er erträglich, kann sich die „Stabilisierung eines Ichs“ formieren.<a id="cein_fn30" href="einleitung.html#ein_fn30"><sup>30</sup></a> „Das temporäre Herausgenommensein aus dem Zwang des Alltags“ scheint hier zugleich Voraussetzung und Indiz für das Festliche zu sein. In dieser U-Chronie, in dieser Nicht-Zeit, kommt es zur synchronen Präsenz von sehnsuchtsbehaftetem Wunschdenken und „gleichzeitigem Wissen um das grundsätzlich Prekäre“.<a id="cein_fn31" href="einleitung.html#ein_fn31"><sup>31</sup></a> Nur in den mannigfaltigen Spielarten des Festlichen ist die „vorübergehende Möglichkeit des Entkommens aus dem Normalen aus den Routinen und Zwängen“ gegeben.<a id="cein_fn32" href="einleitung.html#ein_fn32"><sup>32</sup></a></p>
I want to find :
das grundsätzlich Prekäre“. Nur in den
mannigfaltigen Spielarten des Festlichen
Note: I am finding the above string from variable so i cant match it if any tag present inside.
Somebody please suggest any regular expression for this
Thanks
use strict;
use warnings;
use HTML::TreeBuilder;
my $str = "Your HTML STRING";
# Now create a new tree to parse the HTML
my $tr = HTML::TreeBuilder->new_from_content($str);
# And now find all required tags ex li and create an array
my #lists = map { $_->content_list } $tr->find_by_tag_name('li');
# And loop through the array printing values of tag.
foreach my $val (#lists) {
print $val, "\n";
}
Do the same thing for all other tags.
It is always recommended that you parse HTML instead of using regex for extraction purpose. It is very difficult to write 100% accurate regex for the purpose.
if you want the text between the tags you have mentioned. you can do it like this:
<tagyouwant>([^<]+)
and you will get the text in match groups.
for eg , suppose you want : 29, 30, 31, 32 i.e. text inside <sup>
so you will write the regex as : <sup>([^<]+)
similarly for other tags.
I would use this to extract matches. It would be better to use some kind of HTML parser, but this works.
It is very uneffective, do not use it for production.
my $str = '<p class="paraind">Leo Frobenius und Johan Huizinga sehen wiederum in der Analogie von Fest und Spiel
„das Zusammengeben von strenger Bestimmtheit und echter Freiheit“.
<a id="cein_fn29" href="einleitung.html#ein_fn29"><sup>29</sup></a>
Die rituelle Regelhaftigkeit einerseits und die Absenz des gewöhnlichen Lebens andererseits unterstützen den antipodischen Gehalt dieser beiden Kulturphänomene, wobei das zweite Element auf den kompensatorischen Charakter des Festlichen verweist: Indem der Alltag im Festgeschehen periodisch durchbrochen wird, wird er erträglich, kann sich die „Stabilisierung eines Ichs“ formieren.<a id="cein_fn30" href="einleitung.html#ein_fn30"><sup>30</sup></a>
„Das temporäre Herausgenommensein aus dem Zwang des Alltags“ scheint hier zugleich Voraussetzung und Indiz für das Festliche zu sein. In dieser U-Chronie, in dieser Nicht-Zeit, kommt es zur synchronen Präsenz von sehnsuchtsbehaftetem Wunschdenken und „gleichzeitigem Wissen um das grundsätzlich Prekäre“.<a id="cein_fn31" href="einleitung.html#ein_fn31"><sup>31</sup></a> Nur in den mannigfaltigen Spielarten des Festlichen ist die „vorübergehende Möglichkeit des Entkommens aus dem Normalen aus den Routinen und Zwängen“ gegeben.
<a id="cein_fn32" href="einleitung.html#ein_fn32"><sup>32</sup></a></p>
<span test>test text</span>
';
foreach my $tag (qw|i b span sup sub a|){
my $s = $str;
while ($s =~ s!<($tag)[^>]*>(.*?)</\1>!!is){
print "Match: $1\ttext: $2\n";
}
}
I have two strings:
$string_1 = "Neben den Schlichtungsgesetzen der Länder gibt es für den Fall einer möglichen Verletzung von Verbraucherschutzbestimmungen die Möglichkeit, besondere Schlichtungsstellen nach dem UKlaG anzurufen. Das Verfahren wird in § 14 Abs. 2 UKlaG konkretisiert und schreibt u. a. vor die Unabhängigkeit bzw. Unparteilichkeit der Schlichtungsstelle, die Zugänglichkeit ihrer Verfahrensregeln und das rechtliche Gehör für die Beteiligten, d. h. die Möglichkeit der Parteien, Tatsachen und Bewertungen vorzubringen. Dabei ist das Schlichtungsverfahren auf die Verwirklichung des Rechts ausgerichtet mit der Folge, dass dem beschwerten Verbraucher gem. §§ 1 und 2 UKlaG ein Anspruch auf Unterlassung und Widerruf zusteht. Anspruchsberechtigt sind die in § 3 UKlaG näher beschriebenen anspruchsberechtigten Stellen, wozu auch qualifizierte Einrichtungen nach § 4 UKlaG und rechtsfähige Berufsverbände, die IHK oder HWK gehören. Prüfungsgegenstand und -umfang sind folglich potenzielle rechtliche Ansprüche und nicht in erster Linie die Interessen der Parteien, wie es in der Mediation der Fall ist.";
$string_2 = "Neben den Schlichtungsgesetzen der Länder gibt es für den Fall einer möglichen Verletzung von Verbraucherschutzbestimmungen die Möglichkeit, besondere Schlichtungsstellen nach dem UklaG anzurufen. Das Verfahren wird in § 14 Abs. 2 UKlaG konkretisiert und schreibt u. a. vor die Unabhängigkeit bzw. Unparteilichkeit der Schlichtungsstelle, die Zugänglichkeit ihrer Verfahrensregeln und das rechtliche Gehör für die Beteiligten, d. h. die Möglichkeit der Parteien, Tatsachen und Bewertungen vorzubringen. Dabei ist das Schlichtungsverfahren auf die Verwirklichung des Rechts ausgerichtet mit der Folge, dass dem beschwerten Verbraucher gem. §§ 1 und 2 UKlaG ein Anspruch auf Unterlassung und Widerruf zusteht. Anspruchsberechtigt sind die in § 3 UKlaG näher beschriebenen anspruchsberechtigten Stellen, wozu auch qualifizierte Einrichtungen nach § 4 UKlaG und rechtsfähige Berufsverbände, die IHK oder HWK gehören. Prüfungsgegenstand und -umfang sind folglich potenzielle rechtliche Ansprüche und nicht in erster Linie die Interessen der Parteien, wie es in der Mediation der Fall ist.";
When I compare this I can not get pass through.
I tried :
if ($string_1 eq $string_2) {
code to run after pass through;
}
I can not pass though inside if. Kindly anyone suggest any idea to overcome this
Thank you!
You have 1 different capitalization of a letter.
UKlaG vs UklaG
^ ^
Consider using case-insensitive comparison or correcting the capitalization mistake.
Case-insensitive comparison:
if (lc $string_1 eq lc $string_2) {
...
}