Skip to content

replace_all: not working with single digit numeric subfield in combination with asterisk for array #768

@TobiasNx

Description

@TobiasNx

See example in playground:

Input:

<?xml version="1.0" encoding="UTF-8"?>
<marc:collection xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
	<marc:record>
		<marc:controlfield tag="001">99375315595406441</marc:controlfield>
		<marc:datafield tag="689" ind1="0" ind2="0">
			<marc:subfield code="0">(DE-588)4121342-7</marc:subfield>
			<marc:subfield code="0">https://d-nb.info/gnd/4121342-7</marc:subfield>
			<marc:subfield code="0">(DE-101)041213424</marc:subfield>
			<marc:subfield code="D">s</marc:subfield>
			<marc:subfield code="a">Gemüsegarten</marc:subfield>
		</marc:datafield>
		<marc:datafield tag="689" ind1="0" ind2="1">
			<marc:subfield code="0">(DE-588)4164199-1</marc:subfield>
			<marc:subfield code="0">https://d-nb.info/gnd/4164199-1</marc:subfield>
			<marc:subfield code="0">(DE-101)04164199X</marc:subfield>
			<marc:subfield code="D">s</marc:subfield>
			<marc:subfield code="a">Klimaänderung</marc:subfield>
		</marc:datafield>
		<marc:datafield tag="689" ind1="0" ind2=" ">
			<marc:subfield code="5">DE-101</marc:subfield>
			<marc:subfield code="5">DE-101</marc:subfield>
		</marc:datafield>
	</marc:record>

	<marc:record>
		<marc:controlfield tag="001">99375386212206441</marc:controlfield>
		<marc:datafield tag="689" ind1="0" ind2="0">
			<marc:subfield code="0">(DE-588)4120450-5</marc:subfield>
			<marc:subfield code="0">https://d-nb.info/gnd/4120450-5</marc:subfield>
			<marc:subfield code="0">(DE-101)041204506</marc:subfield>
			<marc:subfield code="D">s</marc:subfield>
			<marc:subfield code="a">Hochbeet</marc:subfield>
		</marc:datafield>
		<marc:datafield tag="689" ind1="0" ind2=" ">
			<marc:subfield code="5">DE-101</marc:subfield>
			<marc:subfield code="5">DE-101</marc:subfield>
		</marc:datafield>
	</marc:record>

</marc:collection>

FLUX:

inputFile
| open-file
| decode-xml
| handle-marcxml
| fix(transformationFile)
| encode-yaml
| print
;

FIX:

replace_all("689??.0.*",".*","TEST")
retain("689??")

Result:

---
"68900":
  "0": "(DE-588)4121342-7"
  "0": "https://d-nb.info/gnd/4121342-7"
  "0": "(DE-101)041213424"
  D: "s"
  a: "Gemüsegarten"
"68901":
  "0": "(DE-588)4164199-1"
  "0": "https://d-nb.info/gnd/4164199-1"
  "0": "(DE-101)04164199X"
  D: "s"
  a: "Klimaänderung"
"6890 ":
  "5": "DE-101"
  "5": "DE-101"

---
"68900":
  "0": "(DE-588)4120450-5"
  "0": "https://d-nb.info/gnd/4120450-5"
  "0": "(DE-101)041204506"
  D: "s"
  a: "Hochbeet"
"6890 ":
  "5": "DE-101"
  "5": "DE-101"

Expected:

---
"68900":
  "0": "TESTTEST"
  "0": "TESTTEST"
  "0": "TESTTEST"
  D: "s"
  a: "Gemüsegarten"
"68901":
  "0": "TESTTEST"
  "0": "TESTTEST"
  "0": "TESTTEST"
  D: "s"
  a: "Klimaänderung"
"6890 ":
  "5": "DE-101"
  "5": "DE-101"

---
"68900":
  "0": "TESTTEST"
  "0": "TESTTEST"
  "0": "TESTTEST"
  D: "s"
  a: "Hochbeet"
"6890 ":
  "5": "DE-101"
  "5": "DE-101"

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions