{"id":13596149,"url":"https://github.com/pdemian/human2regex","last_synced_at":"2025-04-09T16:31:38.073Z","repository":{"id":42224062,"uuid":"301085719","full_name":"pdemian/human2regex","owner":"pdemian","description":"Humanized Regex","archived":false,"fork":false,"pushed_at":"2023-03-14T16:28:53.000Z","size":1909,"stargazers_count":70,"open_issues_count":5,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T09:07:00.823Z","etag":null,"topics":["regex"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pdemian.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-10-04T09:11:56.000Z","updated_at":"2024-12-13T19:27:16.000Z","dependencies_parsed_at":"2023-02-06T12:31:45.205Z","dependency_job_id":"2f717d24-e582-4c62-9959-a81ccca5ccce","html_url":"https://github.com/pdemian/human2regex","commit_stats":{"total_commits":79,"total_committers":2,"mean_commits":39.5,"dds":"0.10126582278481011","last_synced_commit":"a3d4c00f3f06b1e6d76fc66df312b0659c869d49"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdemian%2Fhuman2regex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdemian%2Fhuman2regex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdemian%2Fhuman2regex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdemian%2Fhuman2regex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pdemian","download_url":"https://codeload.github.com/pdemian/human2regex/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248067773,"owners_count":21042353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["regex"],"created_at":"2024-08-01T16:02:09.982Z","updated_at":"2025-04-09T16:31:35.663Z","avatar_url":"https://github.com/pdemian.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Human2Regex\n\n\u003cdiv align=\"center\"\u003e\n\n  ![H2R logo](./src/docs/assets/favicon-small.png)\n\n  [![Build Status](https://travis-ci.com/pdemian/human2regex.svg?branch=master)](https://travis-ci.com/pdemian/human2regex)\n  [![Codecov](https://codecov.io/gh/pdemian/human2regex/branch/master/graphs/badge.svg?branch=master)](https://codecov.io/gh/pdemian/human2regex)\n  [![LGTM Grade](https://img.shields.io/lgtm/grade/javascript/github/pdemian/human2regex)](https://lgtm.com/projects/g/pdemian/human2regex/)\n  ![GitHub](https://img.shields.io/github/license/pdemian/human2regex)\n  [![npm](https://img.shields.io/npm/v/human2regex?color=green)](https://www.npmjs.com/package/human2regex)\n\n  [![Website](https://img.shields.io/badge/website-human2regex.com-blue)](https://human2regex.com)\n  [![Docs](https://img.shields.io/badge/docs-API-blue)](API.md)\n  [![Docs](https://img.shields.io/badge/docs-language-blue)](https://human2regex.com/tutorial.html)\n  \n\n\u003c/div\u003e\n\n\n## Purpose\n\nGenerate regular expressions from natural language.\n\nInstead of a convoluted mess of symbols like `/([\\w\\.=\\-]*\\w+)/g` why not\n\n    using global matching\n    create a group\n        match 0+ characters or \".\" or \"=\" or \"-\"\n        match 1+ words\n\nWhich would you rather modify or debug?\n\nYou can then use your regex in your language of choice, with Human2Regex validating your regex for you.\n\n## Why use Human2Regex?\n\n- Human readable\n- Easier to prototype and modify when compared to regex\n- Easier to debug than raw text or even color coded regex\n- \"Human Speak\" may contain comments\n- Multiple platforms' dialects/quirks supported\n- Human2Regex will minimize your final regex \n- \"Human Speak\" can be used by non-technical QA to verify your program's output\n\n\n## Webpage\nHuman2Regex is hosted on github pages at [https://human2regex.com](https://human2regex.com)\n\n## Tutorial\nThe language tutorial can be found at [https://human2regex.com/tutorial.html](https://human2regex.com/tutorial.html)\n\n## API\nHuman2Regex is available as an embeddable API.\n\nThe API reference is available [here](API.md)\n\n## Usage (API)\n1) Install\n\n        npm i human2regex\n\n2) [Read the API docs](API.md)\n\n## Usage (This repo)\n1) Prebuild\n\n        npm install\n\n2) Build\n\n        npm run build\n\n3) Run\n    \n        point web browser to: docs/index.html\n\n4) Test\n\n        npm t\n\n\n## Todo\n- Add more regex options such as subroutines, ~~conditions, and lookahead/behind~~\n- Fix error messages (They sometimes point to the wrong location, off by 1 errors, etc)\n- Add more useful lex/parse errors (What even is an EarlyExitException?)\n- ~~Use a different/better static site generation method~~\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdemian%2Fhuman2regex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdemian%2Fhuman2regex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdemian%2Fhuman2regex/lists"}