J'ai cette structure de mes données d'entrée, c'est comme JSON mais ne contenant pas de chaînes. Il suffit d'analyser peu d'informations à partir de ces données
const regex = /.appVersion = (".*"?);/
const found = data.match(regex)
console.log(found)
5 Réponses :
Vous devez échapper au . code> avant Appversion code> puisqu'il s'agit d'un caractère spécial dans Regex et que vous pouvez utiliser \ d code> au lieu de . * code> pour correspondre uniquement aux chiffres. Si vous voulez juste le numéro à capturer, sans les citations, vous pouvez les sortir des parenthèses. const regex = /\.appVersion = "(\d+)";/
const found = data.match(regex)
const appVersion = found[1];
Arghh cette période au début, totalement oubliée à ce sujet. Thasnk!
Votre regex recherche . code> qui est "n'importe quel caractère" dans une regex. Échappez-le avec une barre oblique inverse: /\.appVersion = ("\d+");/
const string = '{ .appVersion = "1230"; DisplayStrings = (...(continues)';
const appVersion = string.match(/\.appVersion\s*=\s*"([^"]+)"/)[1];
If that's what you need...I'm not sure where the format you're trying to parse comes from, but consider asking (making) your data provider return json string, so you could easily invoke JSON.parse() which works in both node and browser environments.
n'utilise pas Vous pouvez utiliser quelque chose comme Essayez p> Notez que le premier point doit également être cité, et les espaces doivent être exactement comme dans votre exemple. p> p> . * code> pour capturer la valeur, c'est gourmand. \ "[^ \"] * code> - correspondre à un devis, puis n'importe quel caractère, à l'exception de la citation, autant de temps que possible. P>
Vous pouvez essayer ce qui suit:
var data='{ .appVersion = "1230"; DisplayStrings = ( A ); customParameters = ( { name = Axes;.......(continues)}';
const regex = /.appVersion = [^;]*/ //regex test: https://regex101.com/r/urX53f/1
const found = data.match(regex);
var trim = found.toString().replace(/"/g,''); // remove the "" if necessary
console.log(found.toString());
console.log(trim);
Je pense que nous aurions besoin de plus d'informations pour répondre à cela. Vous dites que c'est la structure des données, mais cela a-t-il déjà l'air différent? Est-ce que ça va toujours très semblable à cela?
Quels sont vos résultats Ecceptés \ matchs?
S'il semble toujours très similaire à celui-ci, avec des différences instantanantes, je créerais une gamme de chaînes en faisant
data.split (';') code>, je m'assurerais que toutes les chaînes ont le{ Code> Le caractère retiré du démarrage et toutes les chaînes sont coupées de l'espace blanc, puis je regarderais la matrice pour une chaîne qui commence par.appversion code> et travaille de làPourquoi la structure de vos données d'entrée est-elle comme celle-ci? Est-ce une API externe ou vous vous rendez-vous?
" C'est comme Json i>" Je ne le dirais pas. Vous avez
= code> et; code> et quoi que ce soit= ({nom = axes; ....... (continue)} code> est. Il semble que rien comme Json, en dehors d'avoir des crochets bouclés.