Cara menggunakan php regex backreference

Groups group multiple patterns as a whole, and capturing groups provide extra submatch information when using a regular expression pattern to match against a string. Backreferences refer to a previously captured group in the same regular expression.

Try it

Types

Examples

Using groups

const personList = `First_Name: John, Last_Name: Doe First_Name: Jane, Last_Name: Smith`; const regexpNames = /First_Name: (\w+), Last_Name: (\w+)/mg; for (const match of personList.matchAll(regexpNames)) { console.log(`Hello ${match[1]} ${match[2]}`); }

Using named groups

const personList = `First_Name: John, Last_Name: Doe First_Name: Jane, Last_Name: Smith`; const regexpNames = /First_Name: (?<firstname>\w+), Last_Name: (?<lastname>\w+)/mg; for (const match of personList.matchAll(regexpNames)) { console.log(`Hello ${match.groups.firstname} ${match.groups.lastname}`); }

Using groups and back references

const quote = `Single quote "'" and double quote '"'`; const regexpQuotes = /(['"]).*?\1/g; for (const match of quote.matchAll(regexpQuotes)) { console.log(match[0]); }

Using groups and match indices

By providing the d flag, the indices of each capturing group is returned. This is especially useful if you are correlating each matched group with the original text — for example, to provide compiler diagnostics.

const code = `function add(x, y) { return x + y; }`; const functionRegexp = /(function\s+)(?<name>[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*)/du; const match = functionRegexp.exec(code); const lines = code.split("\n"); lines.splice( 1, 0, " ".repeat(match.indices[1][1] - match.indices[1][0]) + "^".repeat(match.indices.groups.name[1] - match.indices.groups.name[0]) ); console.log(lines.join("\n")); // function add(x, y) { // ^^^ // return x + y; // }

See also

Postingan terbaru

LIHAT SEMUA