簡體   English   中英

使用正則表達式,如何忽略給定的字符

[英]Using a Regular Expression, how to ignore a given character

下午好,

我是從 SQL 服務器到 DataBricks (Apache Spark) 的遷移項目的一部分,雖然我們正在享受 DB 的所有好處,但我必須承認我錯過了所有這些可愛的 Microsoft SQL 功能。

作為遷移的一部分,我正在嘗試編寫一個正則表達式來查找“-”或“+”的第一個實例,並在此之后返回所有字符。

到目前為止,這是我的正則表達式: \+(.*)|\-.*

這是我的復雜測試集:

dlfsdlfkgjbsdfg / sdklfjgsdfgsdfg- sdfgsdfg / sdfgjh- sdfgsdfg / sdfg+ sdfgsdfg / sdfgsdgfhf4

粗體文本是我期望返回的,但目前我看到加號和減號字符返回。

我的 RegExr 代碼截圖

我嘗試了以下示例,但似乎我錯過了一個技巧,因為我可以突出顯示(但包括)字符之后的所有內容,或者僅突出顯示字符本身。

提前致謝!

您的

\+(.*)|\-.*

匹配任一

加號后跟任何內容並捕獲任何內容

或者

連字符和任何東西,什么都不做。

您應該使用字符 class 然后捕獲。*,如

[+-](.*)

或非捕獲交替(+ 和 - 各一個)和捕獲。* 像

(?:\+|-)(.*)

您可以提取設置了單行DOTALL標志的以下正則表達式的匹配項,這會導致點匹配行終止符以及所有其他字符。

(?<=[+-]).*

啟動你的引擎!

(?<=[+-])是一個肯定的后向查找(Java 支持),它斷言匹配中的當前位置緊跟在第一個加號或減號字符之前。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM