我正在尝试使用 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/