# Replace specific substrings within a given string using index-based replacements
## Tested against Windows / Python 3.11 / Anaconda
## pip install indextextreplace
```python
index_text_replace(string: str, replacements: List[Tuple[int, int, str]]) -> str:
r"""
Replace specific substrings within a given string using index-based replacements.
Args:
string (str): The input string in which replacements will be made.
replacements (List[Tuple[int, int, str]]): A list of replacement tuples, where each tuple
consists of three elements:
- Start index (int): The starting index of the substring to be replaced (inclusive).
- End index (int): The ending index of the substring to be replaced (inclusive).
- Replacement text (str): The text to replace the specified substring with.
Returns:
str: A modified string with the specified replacements applied.
This function replaces substrings within the input `string` according to the provided
`replacements` list. Each replacement is defined by a start index (inclusive), an end index
(inclusive), and the replacement text. The replacement is applied to the specified substring
within the string. The modified string is then returned.
If the `replacements` list contains overlapping intervals, the behavior of the function is
defined by the order of the replacements within the list. The last replacement in the list
for a given index takes precedence.
Note:
- Indexing is 0-based.
- The function does not modify the original input string and returns a new modified string.
- If the start or end indices of a replacement are out of bounds, they are adjusted to
the nearest valid index within the string.
Raises:
ValueError: If the end index of a replacement is less than the start index."""
from indextextreplace import index_text_replace
t = '''Parenthese (altgriechisch παρένθεσις parénthesis, deutsch ‚Einschub')'''
r = [(1, 2, 'XXXX'), (13, 14, 'YYYYY')]
index_text_replace(t, r)
# "PXXXXenthese (aYYYYYgriechisch παρένθεσις parénthesis, deutsch ‚Einschub')"
```
Raw data
{
"_id": null,
"home_page": "https://github.com/hansalemaos/indextextreplace",
"name": "indextextreplace",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "string,replace",
"author": "Johannes Fischer",
"author_email": "aulasparticularesdealemaosp@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/8e/fa/c84ca15989a9ab0d86e23d3faebbce78f343aced1c1627408f41d49c5adc/indextextreplace-0.10.tar.gz",
"platform": null,
"description": "\r\n# Replace specific substrings within a given string using index-based replacements\r\n\r\n## Tested against Windows / Python 3.11 / Anaconda\r\n\r\n## pip install indextextreplace\r\n\r\n```python\r\nindex_text_replace(string: str, replacements: List[Tuple[int, int, str]]) -> str:\r\n r\"\"\"\r\n Replace specific substrings within a given string using index-based replacements.\r\n\r\n Args:\r\n string (str): The input string in which replacements will be made.\r\n replacements (List[Tuple[int, int, str]]): A list of replacement tuples, where each tuple\r\n consists of three elements:\r\n - Start index (int): The starting index of the substring to be replaced (inclusive).\r\n - End index (int): The ending index of the substring to be replaced (inclusive).\r\n - Replacement text (str): The text to replace the specified substring with.\r\n\r\n Returns:\r\n str: A modified string with the specified replacements applied.\r\n\r\n\r\n\r\n This function replaces substrings within the input `string` according to the provided\r\n `replacements` list. Each replacement is defined by a start index (inclusive), an end index\r\n (inclusive), and the replacement text. The replacement is applied to the specified substring\r\n within the string. The modified string is then returned.\r\n\r\n If the `replacements` list contains overlapping intervals, the behavior of the function is\r\n defined by the order of the replacements within the list. The last replacement in the list\r\n for a given index takes precedence.\r\n\r\n Note:\r\n - Indexing is 0-based.\r\n - The function does not modify the original input string and returns a new modified string.\r\n - If the start or end indices of a replacement are out of bounds, they are adjusted to\r\n the nearest valid index within the string.\r\n\r\n Raises:\r\n ValueError: If the end index of a replacement is less than the start index.\"\"\"\r\n\t\t\r\nfrom indextextreplace import index_text_replace\r\nt = '''Parenthese (altgriechisch \u03c0\u03b1\u03c1\u03ad\u03bd\u03b8\u03b5\u03c3\u03b9\u03c2 par\u00e9nthesis, deutsch \u201aEinschub')'''\r\nr = [(1, 2, 'XXXX'), (13, 14, 'YYYYY')]\r\nindex_text_replace(t, r)\r\n# \"PXXXXenthese (aYYYYYgriechisch \u03c0\u03b1\u03c1\u03ad\u03bd\u03b8\u03b5\u03c3\u03b9\u03c2 par\u00e9nthesis, deutsch \u201aEinschub')\"\r\n\r\n```\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Replace specific substrings within a given string using index-based replacements",
"version": "0.10",
"project_urls": {
"Homepage": "https://github.com/hansalemaos/indextextreplace"
},
"split_keywords": [
"string",
"replace"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cc081ef3fea5ffae20055b1fa037df29edb23fce97fca2be0592fe188dd00b58",
"md5": "2b5c2e4109d419986141a124a989c5e7",
"sha256": "31f681400c6af06a7c32b6cff987e7104014132994db2b8991ae7f2bf75005e6"
},
"downloads": -1,
"filename": "indextextreplace-0.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2b5c2e4109d419986141a124a989c5e7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5666,
"upload_time": "2023-10-14T23:43:46",
"upload_time_iso_8601": "2023-10-14T23:43:46.974356Z",
"url": "https://files.pythonhosted.org/packages/cc/08/1ef3fea5ffae20055b1fa037df29edb23fce97fca2be0592fe188dd00b58/indextextreplace-0.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8efac84ca15989a9ab0d86e23d3faebbce78f343aced1c1627408f41d49c5adc",
"md5": "15b37a140f61d41872a9f2caaceb4543",
"sha256": "e889e6c457de2a9a4bf3ad6db109c79eeee0ae072f69e68b1c68f0c41f651efc"
},
"downloads": -1,
"filename": "indextextreplace-0.10.tar.gz",
"has_sig": false,
"md5_digest": "15b37a140f61d41872a9f2caaceb4543",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3623,
"upload_time": "2023-10-14T23:43:48",
"upload_time_iso_8601": "2023-10-14T23:43:48.853054Z",
"url": "https://files.pythonhosted.org/packages/8e/fa/c84ca15989a9ab0d86e23d3faebbce78f343aced1c1627408f41d49c5adc/indextextreplace-0.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-14 23:43:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hansalemaos",
"github_project": "indextextreplace",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "indextextreplace"
}