[英]Regex replace element unless there is another match on same line and before match
我正在做一些工作來重寫我公司一些用戶的 sql 查詢。 我們為重寫這些查詢所做的一件事是替換.
被任何帶有.
周圍沒有空格(使用簡單的正則表達式\\s*\\.\\s*
)。
但是,我遇到了一個問題,其中傳入的查詢包含如下注釋:
)
, wcr AS -- hello I am a comment that ends in a period.
(
然后將其格式化如下,這會使查詢失敗。
)
, wcr AS -- hello I am a comment that ends in a period.(
我想不出任何可以進行我正在尋找的正確替換的正則表達式 - 也就是說,如果沒有--
在.
在同一行。
任何幫助將不勝感激!
看起來您想要圍繞 a 的空格或制表符.
被替換,但不會認為\\n
是這樣的空格。 \\s
是 Python 中的所有[ \\t\\n\\r\\f\\v]
。
您可以將[ \\t]*\\.[ \\t]*
(任一側的零個或多個空格或制表符)替換為.
如果您使用 g (全局)標志,此正則表達式將找到您想要的行並捕獲它們:
^ , wcr AS (?<!-- )([^\-]*)$
示例: https : //regex101.com/r/0LYWgo/1/
然后我會在你最喜歡的編程語言中使用string replace
來去掉點周圍的空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.