Python中是否存在与C#null-conditional运算符相当的?
System.Text.StringBuilder sb = null;
string s = sb?.ToString(); // No error
Run Code Online (Sandbox Code Playgroud) 我试图连接到SQL server 2000安装在Windows server 2003从Windows Server 2008 R2使用Python 3.4和pyodbc模块.这些服务器位于不同的AD域中.Windows only在SQL Server上启用了身份验证,我无法更改它.
drv = '{SQL server}'
svr = 'sql.my-domain.local'
usr = 'my-domain.local\testuser'
pwd = 'password'
db = 'testdb'
pyodbc.connect(driver=drv, server=svr, user=usr, password=pwd, database=db)
Run Code Online (Sandbox Code Playgroud)
上面的连接失败,出现以下错误:
pyodbc.Error: ('28000', "[28000] [Microsoft][ODBC SQL Server Driver][SQLServer]
Login failed for user 'svx-iroot.local\\sqlexecutive'.
Reason: Not associated with a trusted SQL Server connection. (18452) (SQLDriverConnect)")
Run Code Online (Sandbox Code Playgroud)
有一些问题,例如这一个,建议在连接中添加trusted_connection='yes'参数以pyodbc支持Windows身份验证,但在这种情况下它没有用,因为使用此选项使用本地凭据并且我需要明确提供凭据,因为发起工作站位于不同的AD域.
使用驱动程序创建User DSNin 失败,并出现上述相同的错误. …
首先,问题被标记为Python,regex但它并没有真正与那些相关 - 答案可能是高水平的.
目前我正在使用以下模式拆分带有多个分隔符的字符串.实际上有更多的分隔模式,它们更复杂,但让它保持简单并将它们限制为2个字符 - #并且*:
parts = re.split('#|*', string)
此种方法的字符串aaa#bbb*ccc#ddd被分解为4子aaa,bbb,ccc,ddd.但是需要通过首先出现在字符串中的分隔符或字符串中最常出现的分隔符进行分割.aaa#bbb*ccc#ddd应分别以aaa,bbb*ccc,ddd和aaa*bbb#ccc*ddd应拆分aaa,bbb#ccc,ddd.
我知道一种直接的方法来实现这一点 - 找到首先出现的分隔符,或者是字符串中最常出现的分隔符,然后用该单个分隔符进行分割.但是该方法必须高效,我想知道是否有可能通过单个正则表达式实现这一点.问题主要在于拆分第一次出现的分隔符 - 对于最常见的分隔符情况,几乎可以确定需要提前计算出现次数.
更新:
问题并没有要求同时拆分第一次出现或最常见的定界符 - 这些方法中的任何一种都是足够的.我确实理解,在没有初步确定分隔符的情况下,使用正则表达式进行拆分是不可能的,但我认为有可能在没有提前准备的情况下使用正则表达式和前瞻进行第一次出现的分割.