正则表达式 - 在字符串中匹配第一个匹配项,不要在它之前返回任何内容

时间:2016-07-26 08:45:58

标签: regex notepad++

我正在使用Notepad ++进行搜索和替换,并且正在寻找一个正则表达式,它将给出给定字符串中的第一个(,因此我可以替换它。

我对前面或后面的任何字符都不感兴趣,只是第一个(

示例字符串是:

"starLan(11), -- Deprecated via RFC3635 ethernetCsmacd (6) should be used instead

我想找到第一个((在这种情况下靠近starLan(11))所以我可以用其他东西替换该字符。

它不应与同一行中的任何其他(匹配,因此在这种情况下,它不应与(附近的第二个(6)匹配。

我遇到的所有例子似乎都归结为包括给定角色在内的一切,这不是我在这种情况下所追求的。

2 个答案:

答案 0 :(得分:1)

我会匹配以下模式:

^([^(]*)\((.*)$

并将其替换为:

\1X\2

X是您要将(替换为。{/ p>的文字

它使用反向引用来引用第一个(之前和之后的部分。

修改:如OP所述,匹配^([^(]*)\(并替换为\1X就足够了。

答案 1 :(得分:-1)

你可以用这个

^(.*?)\(

在()里面捕获的文本将在后面引用$ 1中可用。所以你可以替换它:

$1someText

其中someText是您要放置的文字,而不是删除'('

如果您希望删除后的文字'('保持完整,您可以使用:

^(.*?)\((.*)

并替换为:

$1someText$2
相关问题