Skip to main content

regex

Usage

  1. Install package adding to package.json:
    "dependencies": {
        "@exabyte-io/regex": "2023.9.1"
    }
    

Or using npm: bash npm i @exabyte-io/regex@2023.9.1

  1. Import package:

    import regexSchemas from "@exabyte-io/regex/lib/schemas";
    
  2. Use regex schemas:

    const calculationPattern = regexSchemas.espresso["5.2.1"]["pw.x"]["stdin"].calculation;
    const regex = new RegExp(calculationPattern.regex, calculationPattern.flags.join("));
    

Development

To run tests:

npm test

To run lint:

npm run lint

To build regex schemas for development:

npm run build:schemas:dev

Add new regex schemas

  1. Add new yamls for stdin and stdout to assets/file/applications/<application_name>/<application_version>/<unit_name>/
  2. Run npm run build:schemas:dev to generate new regex schemas for dev
  3. Add tests for newly added regex schemas

Usage

  1. Install dependency (list in package.json ar with npm install):
npm install @exabyte-io/regex
  1. Import schema.json with compiled regexes in your code:
import regexesSchema from "@exabyte-io/regex/data/schemas.json"
  1. Use regexesSchema object to found needed regex based on application and version for example (you can use json-pointer to get needed path):
import pointer from "json-pointer";

const espressoNamelistRegex = pointer.get(
    schemas,
    "/applications/espresso/5.2.1/pw.x/stdin/control/_format",
);

// _format contains regex with template string
// available templates for regex should be enumerated in params section
// name of param define template string to replace
// possible values will be enumerated as value of param
// "params":{"BLOCK_NAME":["CONTROL","ELECTRONS","IONS","CELL","SYSTEM"]}

const controlBlockRegex = new RegExp(
    espressoNamelistRegex.regex.replace('{{BLOCK_NAME}}', 'CONTROL'),
    espressoNamelistRegex.flags.join(""),
);

// getting namelist blocks
const controlBlocksMatch = file.match(controlBlockRegex);
const controlBlock = controlBlocksMatch[0];


const regexObject = pointer.get(
    schemas,
    "/applications/espresso/5.2.1/pw.x/stdin/control/calculation",
);
const regexCalculation = new RegExp(
    regexObject.regex,
    regexObject.flags.join(""),
);

// getting calculation param value
const calculation = controlBlock.matchAll(regexCalculation);
const [calcluationLine, calculationValue] = Array.from(calculation)[0];


console.log({ calcluationLine, calculationValue })

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mat3ra_regex-2026.7.4.post0.tar.gz (118.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mat3ra_regex-2026.7.4.post0-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file mat3ra_regex-2026.7.4.post0.tar.gz.

File metadata

  • Download URL: mat3ra_regex-2026.7.4.post0.tar.gz
  • Upload date:
  • Size: 118.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/9.0.0 pkginfo/1.12.1.2 requests/2.34.2 requests-toolbelt/1.0.0 tqdm/4.68.3 CPython/3.10.20

File hashes

Hashes for mat3ra_regex-2026.7.4.post0.tar.gz
Algorithm Hash digest
SHA256 e5432c531b14e4f75f06a5d94a3a1bedeae63fb0066bdc6df252056cf5cba82d
MD5 1f1b825b0d143a1fc5caa4cd33d859e1
BLAKE2b-256 d7e13c5f3b10d9a428e594df0978c3060663b077897429c2c863de713716feae

See more details on using hashes here.

File details

Details for the file mat3ra_regex-2026.7.4.post0-py3-none-any.whl.

File metadata

  • Download URL: mat3ra_regex-2026.7.4.post0-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/9.0.0 pkginfo/1.12.1.2 requests/2.34.2 requests-toolbelt/1.0.0 tqdm/4.68.3 CPython/3.10.20

File hashes

Hashes for mat3ra_regex-2026.7.4.post0-py3-none-any.whl
Algorithm Hash digest
SHA256 6a8459179d98183cf75af495215b351c494c74effea9396d4a9ab6c0a701e6a4
MD5 fce6e9e5bdb84af45a7be3c9509e2aef
BLAKE2b-256 de7dec5c4173eaca08e7c91a741dfb20a2a6c15d8b3e696d89d5e24ac3aa25aa

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2026.7.4.post0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page