我的文字是:
999 blaw blaw blaw1 999 blaw blaw blaw
我想选择:
blaw blaw blaw1
现在,我可以使用:
([0-9][0-9][0-9] )(.*?)( [0-9][0-9][0-9])
但问题是我不能使用".*?"
我正在使用的东西。如果我没有替换(.*?)
为!([^0-90-90-9]*)
1
blaw1
任何建议,如果相关,我将使用 Stata。
我的文字是:
999 blaw blaw blaw1 999 blaw blaw blaw
我想选择:
blaw blaw blaw1
现在,我可以使用:
([0-9][0-9][0-9] )(.*?)( [0-9][0-9][0-9])
但问题是我不能使用".*?"
我正在使用的东西。如果我没有替换(.*?)
为!([^0-90-90-9]*)
1
blaw1
任何建议,如果相关,我将使用 Stata。
根据hwnd的评论:
clear
set more off
*----- example data -----
input str60 text
"999 blaw blaw blaw1 999 blaw blaw blaw"
end
list
*----- what you want -----
gen extract = regexs(2) if regexm(text, "(^[0-9][0-9][0-9] )(.+)( [0-9][0-9][0-9])")
list
还
... regexm(text, "(^[0-9]+ )(.+)( [0-9]+)")
来自help regex
:
正则表达式语法基于 Henry Spencer 的 NFA 算法,这与 POSIX.2 标准几乎相同。[ arguments ] 可能不包含二进制 0 (\0)。
其他参考资料有:
http://www.stata.com/support/faqs/data-management/regular-expressions/
尝试关注(?<([a-z]*[0-9]? )*)
我不熟悉Stata,但这在正则表达式的Javascript实现中工作
更新以考虑回溯。