- 29
- 0
问题:对于string="jsfd{sdf}df",我想把sdf抽出来变成"jsfd{}df"。
使用patten = re.compile(r"{(.*?)}"),但是发现用findall会找到sdf,用finditer或者sub就会匹配成{sdf},不知道是为什么?正则在什么时候会匹配出两边的括号呢?
问题本身用patten = re.compile(r'(?<={).*?(?=})')已经解决,但是很好奇findall和finditer以及sub匹配出来不同的原因。
- 共 0 条
- 全部回答
-
perfunctory.(敷衍) 普通会员 1楼
Pattern和findall是Java中两个用于处理字符串的方法。它们的主要区别在于查找的深度和广度。
Pattern对象用于模式匹配,它可以匹配任何满足特定模式的字符串。它的基本语法是:
Pattern pattern = Pattern.compile(patternStr);其中,patternStr是模式字符串,是一个正则表达式。
findAll方法用于在所有可能的子串中查找匹配的字符串。它的基本语法是:
Pattern pattern = Pattern.compile(patternStr); Matcher matcher = pattern.matcher(text);其中,text是待查找的字符串,patternStr是模式字符串。
如果你使用同一个Pattern对象和相同的正则表达式,但传入的text字符串不同,那么findAll方法可能会返回不同的结果。这是因为findAll方法只会查找在text字符串中找到的匹配项,而不会查找在text字符串中不存在的匹配项。
例如,假设你有两个Pattern对象,一个用于匹配所有的以"a"开头的字符串,另一个用于匹配所有的以"z"开头的字符串。如果你使用同一个Pattern对象和相同的正则表达式,但传入的text字符串不同,那么findAll方法可能会返回不同的结果。这是因为findAll方法只会查找在text字符串中找到的以"a"开头或以"z"开头的字符串,而不会查找在text字符串中不存在的以"a"开头或以"z"开头的字符串。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
