如何使用正则表达式提取两个字符串之间的值?
问题描述:
这里是演示字符串:如何使用正则表达式提取两个字符串之间的值?
beforeValueAfter
假定我知道我想要的值之间“之前”和“之后” 我想extact“值”使用正则表达式....
pervious909078375639355544after
Assum e我知道我想要的值是在“pervious90907”和“55544after”之间 我想用“正则表达式”提取“83756393”....
thx提前。
答
答案取决于两件事情:
- 如果你知道确切什么值由(如果你知道这将是数字,等等,它可以更容易)。如果它可以是任何事情,答案会更难一些。
- 如果您的系统默认为贪婪/非理性,它会影响您设置表达式的方式。我会认为它默认情况下是贪婪的。
如果它可以是任何东西(在将需要切换.*
到ungreedy因为“.*
”也匹配“后”:
/before(.*?)After/
如果你知道它是个数字:
/before(\d*)After
如果它可以是任何单词字符(0-9,AZ,AZ,_):
/before(\w*?)After
答
正则表达式应该是这样的:
previous([0-9]*)after
答
bash-3.2$ echo pervious909078375639355544after | perl -ne 'print "$1\n" if /pervious90907(.*)55544after/' 83756393
你可以做一个字符串替换的 “pervious90907” 和 “55544after”。你会留下你想要的价值。不需要正则表达式 – ghostdog74 2009-08-02 00:01:10