gpt4 book ai didi

java - 使用正则表达式和定界符提取数据

转载 作者:行者123 更新时间:2023-11-29 05:16:53 24 4
gpt4 key购买 nike

我将如何使用正则表达式提取 %3B 和 %2C 之间的所有字符

%3B09573000P%2C%3B0906000P%2C%3B09593000P%2C%3B09512100P

所以,我试图从下面提取以“P”结尾的字符串。 *重要的是要注意它们总是不会以 P 结尾,所以我必须以 %3B 和 %2C 为基础进行提取。

%3B
09573000P
%2C%3B
0906000P
%2C%3B
09593000P
%2C%3B
09512100P

我尝试了以下方法,但没有成功。

'[(^%3B)(^%2B)]'


'%3B(.*)%2C'

最佳答案

%3B(.*)%2C 的问题在于 * 是“贪婪的”,因为它会继续捕获 %2C 等。你可以通过让它不情愿来改变它,就像这样:

%3B(.*?)%2C

但是,这个解决方案在长字符串上不是很好,因为它容易出现 catastrophic backtracking。 .如果您确定标签之间的内容不会包含 % 字符,则可以提高性能:

%3B([^%]*)%2C

如果您还想捕获尾随字符串,请将 |$ 添加到结束标记:

%3B([^%]*)(?%2C|$)

Demo.

关于java - 使用正则表达式和定界符提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26243075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com