如何匹配python中$(…)中的字符串

如何匹配python中$(…)中的字符串,第1张

概述with open('templates/data.xml', 'r') as s: for line in s: line = line.rstrip() #removes trailing whitespace and '\n' chars if "\\$\\(" not in line: if ")" not in line:
with open('templates/data.xml','r') as s:    for line in s:    line = line.rstrip() #removes trailing whitespace and '\n' chars    if "\$\(" not in line:        if ")" not in line:                continue    print(line)    start = line.index("$(")        end = line.index(")")    print(line[start+2:end])

我需要匹配像$(hello)这样的字符串.但现在这甚至匹配(你好).

我真的很陌生.那我在这里做错了什么?

解决方法 使用以下正则表达式:

$\(([^)]+)\)

它匹配$,然后是(,然后是直到最后的任何东西),并捕获括号之间的字符.

这里我们确实逃避了$,(和),因为当你使用一个接受正则表达式的函数(比如findall)时,你不希望$被视为特殊字符$,而是作为文字“$”(同样成立)对于(和)).但请注意,由于您要捕获外括号之间的文本,因此内括号未被引用.

请注意,当您不使用正则表达式时,不需要转义特殊字符.

总结

以上是内存溢出为你收集整理的如何匹配python中$(…)中的字符串全部内容,希望文章能够帮你解决如何匹配python中$(…)中的字符串所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存