[英]Regex to grab a string present between (comma or whitespace) and fixed string
我想要一个介于(逗号或空格)和一个字符串之间的字符串。
我使用的代码是
re.findall('[,]?[\s]*(.*?)[.]calc', string)
我运行这个的输出
String 1 = "Select ID, Deliveryid.calc"
Result = Deliveryid
String 2 = "Select Deliveryid.calc"
Result = Select Deliveryid.calc
现在对于字符串二,我只想要 Deliveryid 而不是洞。 基本上我想要“.calc”和“空格或逗号”之前的字符串。 在逗号和空格的情况下,它可以是任何人或两者
也可以有换行符或制表符。 基本上任何类型的空格和逗号。 两者都可以在场或任何人。
仅供参考 - 我想要字符串中的所有匹配字符串。 可以有一个或多个
您可以使用
[\s,]([^\s,]*)\.calc
请参阅正则表达式演示。 细节:
[\\s,]
- 一个空格或逗号([^\\s,]*)
- 第 1 组:除空格和逗号以外的任何零个或多个字符\\.calc
- .calc
字符串。请参阅Python 演示:
import re
text = 'Select ID, Deliveryid.calc Select ID, Deliveryid.calc Select ID, Deliveryid.calc\nSelect Deliveryid.calc Select Deliveryid.calc'
print( re.findall(r'[\s,]([^\s,]*)\.calc', text) )
# => ['Deliveryid', 'Deliveryid', 'Deliveryid', 'Deliveryid', 'Deliveryid']
稍微修改了正则表达式
import re
String1 = "Select ID, Deliveryid.calc"
String2 = "Select Deliveryid.calc"
m1 = re.search('[, ]([^, ]*?)[.]calc', String2)
print ('->' + m1.group(0) + '<-')
print ('->' + m1.group(1) + '<-')
我认为你应该得到 group(1) 的价值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.