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 })

Metadata

Release files for mat3ra-regex 2026.7.4.post0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mat3ra-regex 2026.7.4.post0
File Size Uploaded
mat3ra_regex-2026.7.4.post0.tar.gz 118.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mat3ra-regex 2026.7.4.post0
File Interpreter ABI Platform
mat3ra_regex-2026.7.4.post0-py3-none-any.whl Python 3 none any Details

Total release size: 123.6 kB

Release files / mat3ra_regex-2026.7.4.post0.tar.gz

Download URL mat3ra_regex-2026.7.4.post0.tar.gz
Size 118.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e5432c531b14e4f75f06a5d94a3a1bedeae63fb0066bdc6df252056cf5cba82d
BLAKE2b-256 checksum
How to use checksums
d7e13c5f3b10d9a428e594df0978c3060663b077897429c2c863de713716feae
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / mat3ra_regex-2026.7.4.post0-py3-none-any.whl

Download URL mat3ra_regex-2026.7.4.post0-py3-none-any.whl
Size 5.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6a8459179d98183cf75af495215b351c494c74effea9396d4a9ab6c0a701e6a4
BLAKE2b-256 checksum
How to use checksums
de7dec5c4173eaca08e7c91a741dfb20a2a6c15d8b3e696d89d5e24ac3aa25aa
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

2026.7.4.post0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page