python - 将子字符串的第一个实例与正则表达式匹配

标签 python regex

我正在尝试使用 python 的 re 模块将字符串中的所有内容匹配到多行注释的结尾。

我目前遇到问题的字符串是:

i = 333;        ******************/       */

我对字符串执行的搜索如下:

tempLine = re.search(r'.*\*/(.*)', line, flags=0).group(1)

我期望搜索功能能够匹配任意数量的字符,直到第一次出现 */

我想使用我添加到 re 的组保存第一个 */ 之后的所有内容,并将其保存在变量 tempLine 中。

正则表达式匹配对象最终如下:

<re.Match object; span=(0, 41), match='i = 333;     *****************/       */'>

该小组最终的结果是:

""

这意味着正则表达式匹配字符串末尾 */ 之前的所有内容,而不是一系列星号之后出现的第一个 */

如何重新匹配直到第一次出现 */ 为止的所有内容?

最佳答案

由于您的目标是固定字符串,并且您正在查找第一个匹配项,因此您可能会考虑使用非re 函数,例如 str.partition相反。

这会更快,因为它不需要正则表达式处理的开销。

关于python - 将子字符串的第一个实例与正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57814271/

相关文章:

python - 根据条件删除字典中的条目

c++ - 动态规划/内存(计算三元组)

java - Java中通过正则表达式提取

regex - 无法适合子字符串的正则表达式

regex - r 正则表达式奇怪的行为

python - subprocess.call() 中的 Pytest 模拟全局变量

python - golang 像 python 一样定义 dict,并将值附加到 dict 中的列表

Python - 由于套接字未连接,发送或接收数据的请求被禁止

javascript - 匹配时间的正则表达式模式,如 '1h 10m'

javascript - 使用 Javascript 从用户输入的电话号码中提取子字符串