import Foundation
let pattern = #"souly"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
import React, { useState } from 'react';
const characters = [
{ name: 'Luke', side: 'Jedi' },
{ name: 'Vader', side: 'Sith' },
// Weitere Charaktere nach Bedarf hinzufügen
];
export default function ToggleCharacterView() {
const [view, setView] = useState('all');
const [selectedSide, setSelectedSide] = useState(null);
// Wechsel zwischen "all" und "sides"
function handleToggleView() {
setView(view === 'all' ? 'sides' : 'all');
setSelectedSide(null);
}
// Filter für Sichtbarkeit der Charaktere
const visibleCharacters =
view === 'all'
? characters
: selectedSide
? characters.filter(c => c.side === selectedSide)
: characters;
return (
<div>
<button onClick={handleToggleView}>
{view === 'all' ? 'Nur Seiten zeigen' : 'Alle anzeigen'}
</button>
{view === 'sides' && (
<>
<button onClick={() => setSelectedSide('Jedi')}>Jedi</button>
<button onClick={() => setSelectedSide('Sith')}>Sith</button>
<button onClick={() => setSelectedSide(null)}>Zurücksetzen</button>
</>
)}
<ul>
{visibleCharacters.map(character => (
<li key={character.name}>{character.name}</li>
))}
</ul>
</div>
);
}
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let matches = regex.matches(in: testString, range: stringRange)
var result: [[String]] = []
for match in matches {
var groups: [String] = []
for rangeIndex in 1 ..< match.numberOfRanges {
let nsRange = match.range(at: rangeIndex)
guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue }
let string = (testString as NSString).substring(with: nsRange)
groups.append(string)
}
if !groups.isEmpty {
result.append(groups)
}
}
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression