Предположим, у меня есть последовательность строк, которая выглядит примерно так:
1 10 46565 5968678 3 567 78
Я бы хотел превратить его в
F(1) F(10) F(46565) F(5968678) F(3) F(567) F(78)
Существует ли регулярное выражение с одной строкой, которое выполнит это в Stata с произвольным числом элементов?
Я пытался:
. display ustrregexra("1 10 46565 5968678 3 567 78","([:digit:]){1,}","XXX")
XXX XXX XXX XXX XXX XXX XXX
и
. display ustrregexra("1 10 46565 5968678 3 567 78","([:digit:]){1,}","F(&)")
F(&) F(&) F(&) F(&) F(&) F(&) F(&)
и
. display ustrregexra("1 10 46565 5968678 3 567 78","[0-9]{1,}","F(&)")
F(&) F(&) F(&) F(&) F(&) F(&) F(&)
В VI, похоже, это помогает:
.s/[0-9]\{1,}/F(&)/g
Есть ли эквивалент в Stata для функций юникода или ванильного регулярного выражения? Функции Stata ustrregex * основаны на механизме регулярных выражений ICU в соответствии с этим комментарием программиста StataCorp.