Czy istnieje prosty sposób na zmianę ciągu, takiego jak "DIV class=demo id=3" do: "DIV class='demo' id='3'"?

Planuję napisać funkcję rekurencyjną. Czy jest na to prosty sposób?

0
balaG 24 sierpień 2011, 20:53
1
Czy chcesz dodać pojedyncze cudzysłowy wokół każdej niecytowanej wartości, czy tylko class i id?
 – 
Abe Miessler
24 sierpień 2011, 20:58
Cześć! Nigdy nie używaj wyrażenia regularnego do parsowania kodu HTML. Wszyscy na SO będą cię nienawidzić inaczej. zobacz to: stackoverflow.com/questions/1732348/… powodzenia :)
 – 
user194076
24 sierpień 2011, 21:02
Tak Abe, chcesz dodać pojedyncze cudzysłowy wokół każdej niecytowanej wartości
 – 
balaG
24 sierpień 2011, 21:20

3 odpowiedzi

Najlepsza odpowiedź
result = Regex.Replace(input, @"(\b\w*=)(\w*\b)", @"$1'$2'");

Zastępuje to dowolny alphanumericword=alphanumericword z alphanumericword='alphanumericword'

Ale to może nie być dokładnie to, czego chcesz.

1
Laurel 20 kwiecień 2016, 19:53
Doskonałe rozwiązanie..Dzięki mój przyjacielu.
 – 
balaG
24 sierpień 2011, 21:26
Tekst wejściowy:
dfdfd
dfdfd
Tekst wyjściowy
dfdfd
dfdfd
 – 
balaG
24 sierpień 2011, 21:34

Ponieważ tytuł nie ma nic wspólnego z pytaniem, radziłbym też coś niepowiązanego :)

Nie używaj trybu IE7 dla swojej strony internetowej, a otrzymasz odpowiedni format innerHTML, tak jak tego oczekujesz.

0
Alexei Levenkov 24 sierpień 2011, 20:58
Właściwie otrzymuję te dane z usługi. Ale muszę załadować do XMLDocument, gdzie powinien być odpowiednio sformatowany za pomocą cudzysłowów. W każdym razie dzięki.
 – 
balaG
24 sierpień 2011, 21:13
Twoja odpowiedź jest omawiana na meta tutaj
 – 
rene
20 kwiecień 2016, 19:39

Znajdź to

/(<[^>]+?=)([^"'\s][^\s>]+)/gi

Zastąpić z tym

$1'$2'

Zauważ, że działało to dla mnie przez lata, dopóki youtube nie zaczął umieszczać spacji w swoich linkach! Zły youtube!!

0
Tom McDonald 1 listopad 2019, 02:56