猿问

正则表达式查找不存在的空格前缀但不包含匹配中的字符?

所以我有以下 RegEx 用于查找和添加空格:

(\S)(\()

因此,对于像“SomeText(Somemoretext)”这样的字符串,我想将其更新为“SomeText (Somemoretext)”,它匹配“t(”,因此我的替换从字符串中消除了不好的“t”。我也没有知道角色可能是什么,我只是想找到不存在空格的地方。

是否有更好的表达式可以使用,或者有没有办法从返回的匹配中排除找到的字符,以便我可以安全地替换而不捕获我不想替换的字符?


四季花海
浏览 222回答 2
2回答

喵喔喔

如果您需要检测单词后特定字符(例如括号)之前是否有空格,那么以下如何?\b(?=[^\s])\(这将检测words( [a-zA-z0-9_] 后跟括号,没有空格)。(如果我没有得到你的问题),您可以替换full match用(,让你需要的东西。如果您需要在任何类型的文本(如文本中可能是non-word,例如标点符号)中的符号(如括号)之前查找缺失空格,您可能需要使用以下内容。^(?:\S*)(\()(?:\S*)$使用它时,您的结果将在group 1, 而不是 just full match(现在包含整行,如果有一行匹配)。
随时随地看视频慕课网APP
我要回答